python3自动爬笑话

学校的服务器可以上外网了,所以打算写一个自动爬取笑话并发到bbs的东西,从网上搜了一个笑话网站,感觉大部分还不太冷,html结构如下:

可以看到,笑话的链接列表都在<div class="list_title">里面,用正则表达式可以把最近的几个笑话地址找出来,再进到一个笑话页面看下:

每一个笑话页面里面是有多个小笑话组成的,全部在<span id="text110">标签下,每个小笑话又单独一个<p>包裹,这样非常容易就可以把每个单独笑话放到一个list中。由于我爬笑话的目的是每天白天一个小时发一个笑话,所以爬取20个是足够的了,每个页面平均有5个小笑话,爬4个页面就OK啦。这里有几个细节,这个笑话网有的链接是有中文的,比如:

<a href="/jokehtml/冷笑话/2014051200030765.htm" target="_blank">读书破万卷,搞笑如有神</a>

直接urllib.request.urlopen函数不能解析中文的URL,必须要urllib.parse先转码一下才能正确解析。还有一个细节是每段的小笑话之间是有换行的,用正则表达式的“.”是不能匹配换行符的,需要改成“[\w\W]”才能匹配。好了,下面是代码:

import urllib.request
import urllib.parse
import re

rule_joke=re.compile(‘<span id=\"text110\">([\w\W]*?)</span>‘)
rule_url=re.compile(‘<a href=\"(.*?)\"target=\"_blank\" >‘)
mainUrl=‘http://www.jokeji.cn‘
url=‘http://www.jokeji.cn/list.htm‘

req=urllib.request.urlopen(url)
html=req.read().decode(‘gbk‘)
urls=rule_url.findall(html)
f=open(‘joke.txt‘,‘w‘)
for i in range(4):
	url2=urllib.parse.quote(urls[i])
	joke_url=mainUrl+url2
	req2=urllib.request.urlopen(joke_url)
	html2=req2.read().decode(‘gbk‘)
	joke=rule_joke.findall(html2)
	jokes=joke[0].split(‘<P>‘)

	for i in jokes:
		i=i.replace(‘</P>‘,‘‘)
		i=i.replace(‘<BR>‘,‘‘)
		i=i[2:]
		f.write(i)
f.close()

看下爬取的结果:

这样,每行是一个单独的笑话,方便其他程序使用。

转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25693641

python3自动爬笑话

时间: 2024-11-08 07:31:18

python3自动爬笑话的相关文章

python3自己主动爬笑话

学校的server能够上外网了,所以打算写一个自己主动爬取笑话并发到bbs的东西,从网上搜了一个笑话站点,感觉大部分还不太冷.html结构例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl0dGxldGh1bmRlcg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 能够看到,笑话的链接列表都在<div class=

Python3从零开始爬取今日头条的新闻【一、开发环境搭建】

Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Python3从零开始爬取今日头条的新闻[四.模拟点击切换tab标签获取内容] Python3从零开始爬取今日头条的新闻[五.解析头条视频真实播放地址并自动下载] 所谓爬虫,就是通过编程的方式自动从网络上获取自己所需的资源,比如文章.图片.音乐.视频等多媒体资源.通过一定的方式获取到html的内容,再通过

Scrapy精华教程(六)——自动爬取网页之II(CrawlSpider)

一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如google等搜索引擎爬虫实现的就是对整个互联网的爬取,所以在本教程中研究使用scrapy自动实现多网页爬取功能. 在教程(五)

python网络爬虫之使用scrapy自动爬取多个网页

前面介绍的scrapy爬虫只能爬取单个网页.如果我们想爬取多个网页.比如网上的小说该如何如何操作呢.比如下面的这样的结构.是小说的第一篇.可以点击返回目录还是下一页 对应的网页代码: 我们再看进入后面章节的网页,可以看到增加了上一页 对应的网页代码: 通过对比上面的网页代码可以看到. 上一页,目录,下一页的网页代码都在<div>下的<a>元素的href里面.不同的是第一章只有2个<a>元素,从二章开始就有3个<a>元素.因此我们可以通过<div>

【转】 Scrapy研究探索(六)——自动爬取网页之II(CrawlSpider)

转自http://blog.csdn.net/u012150179/article/details/34913315 一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如googl

26、自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱

自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱. 之所以选择这个相对朴实的爬虫项目,是因为天气每天都会有变化,那么在学完这一关之后,不出意外,你就可以在明早收到天气信息了.以此,亲身体验程序的作用. 你还可以把每日的天气和温馨的穿衣提示发送到你的恋人.家人.或朋友的邮箱里,这也是传递心意的一种方式. 总体上来说,可以把这个程序分成三个功能块:[爬虫]+[邮件]+[定时] 1 import requests 2 import time 3 import schedule 4 from

27、周末吃什么(每周五自动爬取下厨房本周最受欢迎的菜谱)

在之前吴氏私厨的基础上,每周五自动爬取下厨房本周最受欢迎的菜谱 1 import requests 2 import time 3 import schedule 4 import smtplib 5 from email.mime.text import MIMEText 6 from email.header import Header 7 from bs4 import BeautifulSoup 8 9 def caipu_fun(): 10 res = requests.get('ht

Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)

一.效果如下: 二.运行环境: win10系统:python3:PyCharm 三.QQ机器人用的是qqbot模块 用pip安装命令是: pip install qqbot (前提需要有requests库) 实现自己的机器人:网上好几种写法,很简单,不过有时候环境不同会出现错误,下面是亲测可以运行的: from qqbot import QQBotSlot as qqbotslot, RunBot @qqbotslot def onQQMessage(bot, contact, member,

Python3批量爬取网页图片

所谓爬取其实就是获取链接的内容保存到本地.所以爬之前需要先知道要爬的链接是什么. 要爬取的页面是这个:http://findicons.com/pack/2787/beautiful_flat_icons 里面有很多不错的图标,目标就是把这些文件图片爬下来,保存成本地图片. 用python3怎么做呢? 第一步:获取要爬取的母网页的内容 import urllib.request import re url = "http://findicons.com/pack/2787/beautiful_f