首页 > 代码库 > python3自己主动爬笑话
python3自己主动爬笑话
学校的server能够上外网了,所以打算写一个自己主动爬取笑话并发到bbs的东西,从网上搜了一个笑话站点,感觉大部分还不太冷。html结构例如以下:
能够看到,笑话的链接列表都在<div class="list_title">里面,用正則表達式能够把近期的几个笑话地址找出来,再进到一个笑话页面看下:
每一个笑话页面里面是有多个小笑话组成的。所有在<span id="text110">标签下,每一个小笑话又单独一个<p>包裹,这样很easy就能够把每一个单独笑话放到一个list中。因为我爬笑话的目的是每天白天一个小时发一个笑话。所以爬取20个是足够的了,每一个页面平均有5个小笑话,爬4个页面就OK啦。
这里有几个细节。这个笑话网有的链接是有中文的,比方:
<a href=http://www.mamicode.com/"/jokehtml/冷笑话/2014051200030765.htm" target="_blank">读书破万卷,搞笑如有神
直接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=http://www.mamicode.com/"(.*?)\"target=\"_blank\" >‘)>
看下爬取的结果:
这样,每行是一个单独的笑话。方便其它程序使用。
转载请注明:转自http://blog.csdn.net/littlethunder/article/details/25693641
python3自己主动爬笑话
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。