当前位置:首页 >> 脚本专栏

Python爬虫实例爬取网站搞笑段子

众所周知,python是写爬虫的利器,今天作者用python写一个小爬虫爬下一个段子网站的众多段子。

目标段子网站为“http://ishuo.cn/”,我们先分析其下段子的所在子页的url特点,可以轻易发现发现为“http://ishuo.cn/subject/”+数字,

经过测试发现,该网站的反扒机制薄弱,可以轻易地爬遍其所有站点。

现在利用python的re及urllib库将其所有段子扒下

import sys
import re
import urllib
#返回html格式
def gethtml(url):
  page=urllib.urlopen(url)
  html=page.read()
  return html
def getmessage(html):
  p=re.compile(r'<div class="content">(.*)</div><script type="text/javascript">')
  #对段子内容进行正则匹配
  message=re.findall(p,html)#返回正则匹配的结果
  return message
fp=open('data.txt','w+')
#实际范围比1~7000要大,因为时间原因这里暂定为1~7000
for i in range(1,7000):
  i=str(i)
  web=gethtml('http://ishuo.cn/subject/'+i)
  #该网站段子的链接特点
  message=getmessage(web)
  message2=''.join(message)#将结果转换为字符串类型
  #message2=message2.decode('utf8','strict')
  message2=str(message2)
  print message2
  fp.writelines(message2+'\n')
  #将爬下的众多段子写入文件中
fp.close()

 data.txt收录了其中爬下段子的结果:

收录的部分结果如下:

【韩寒】明明下流的人,凑一起就叫上流社会? 
日子过不下去的时候,我就得向钱看!只有当日子过滋润了,我才能够向前看!
某公司一群基层员工年底聚会,没有加薪没有升职连年终奖金都被取消了,打算借酒浇愁一回。有人带了瓶酒来,大家一看那酒的名字,眼泪就都扑簌簌地往下掉开了,还有人顿时抱头痛哭了一场。那酒的名字叫老白干。
【段子】群里听到的段子,太乐了:路上听到一大叔情绪激动地打电话:对!国足进3个球了!没错!是男足!没错没错!是和韩国比赛!什么?对方?对对对!对方也是男足!
 
一女士向闺蜜诉说,他结婚原因:他向我求婚,我说跟我结婚,没门!我还没发昏到那程度!后来,他就用石头把我碰昏了!我就傻了,死心塌地跟他结婚了!闺蜜说:你不告他,反而跟他结婚,真是发昏了!他用什么石头碰的你呀?女士说:他用钻石!
【冷笑话】一男子提着一个皮包,挤上了公共汽车,车上人拥挤,一小偷用刀片割其皮包,窃其财物。一勇敢女子见状偷偷的提醒身边的男士,但由于紧张,说道:“先生,有人要割你的包皮”……
【段子】外交部工作:周一表示不满;周二抗议;周三强烈谴责;周四严正交涉;周五深表遗憾。周六、周日休息。
经考证孔子是经济学家,有其语为证: 三十而立--三十两银子只能站着听课; 四十不惑--四十两就能一直问到没疑问为止; 五十知天命--五十两就能知道明天考试命题; 六十耳顺--六十两老师会说你喜欢听的话,七十而从心所欲-七十两你来不来、学习的怎么样都随便了。
班车上,坐在身边的一位美女同事睡着了,竟然打起呼噜,觉得这样很丢脸,就用手轻推她,只见她喃喃的说:不要了老公,明天吧。
【太尖锐】蒙古国是个纯内陆国,却有个海军部。中国老大哥很好奇地问:”你们连海都没有,搞什么海军部!?”蒙古人回答道:”你们不也有文化部么?!”
一女程序员征婚:SELECT * FROM 男人 WHERE 未婚=true and 有房=true and 有车=true and 条件 in (‘大方',\'绅士',\'会做家务\',\'帅气\',\'最好还能带孩子') 一资深的程序员回复:(0 row(s) affected)
【小笑话】孔子,孟子,老子三人同时在猪圈睡了一夜之后,发现母猪怀孕了,经DNA检验证明,肯定不是孔子干的,也不是孟子干的,请问,那是谁干的"font-size: large">总结

以上就是本文关于Python爬虫实例爬取网站搞笑段子的全部内容,希望对大家有所帮助,感兴趣的朋友可以继续参阅本站:Python入门之三角函数全解【收藏】、python好玩的项目—色情图片识别代码分享、Python实现一个简单的验证码程序等,有什么问题可以随时留言,小编会及时回复大家的。

感谢朋友们对本站的支持!