1234笑话大全

当前位置: 1234笑话大全 > 开心笑话 >

python3自动爬笑话

时间:2014-06-04 03:45来源:网络整理 作者:每日一笑 点击:
python3自动爬笑话

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

python3自动爬笑话


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

python3自动爬笑话


        每一个笑话页面里面是有多个小笑话组成的,全部在<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() 看下爬取的结果:

python3自动爬笑话


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


(责任编辑:每日一笑)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
推荐内容
  • 徒儿采蜜回来

    师徒二人以悬崖采蜜为生,昨天傍晚,徒弟带着一个巨大的蜂巢回来见师娘,师娘高兴,立...

  • 面试爆笑,老板VS面试者

    1、三人应聘。甲:我211。乙:我985。丙:我996。老板:就你了!2、去面试,HR:“你...

  • 爆糗,糗的没脸没皮的

    1、“哎,我们这种海归已经用不惯筷子了。”“服务员,给这位点了麻婆豆腐的先生上一...

  • 亲爱的,你冷不冷

    一哥们和女朋友晚上跑步,天气有些冷,哥们一把抱住女朋友哥们问:“亲爱的,你冷不冷...

  • 数学老师真好

    儿子:“妈妈,体育老师真好,上体育课的时候教我们数学。”妈妈:“哦,是真的吗,教...

  • 当劫匪,最重要是诚信

    一劫匪深夜劫住一戴口罩的女人,劫匪大吼:“把钱给我,否则我强暴你”口罩女摘掉口罩...