爬虫第四战爬取糗事百科搞笑段子

又开始了新的篇章,本熊继续一个Python小白的修行之路,这次要爬取糗事百科主页的段子,恩 。。看起来不错的样子,只是段子不能吃 ,不然,啧啧。。。

相信很多人有去糗百看段子减压的习惯,如果能把这些段子爬下来,以后即便到了一个没网的地方  ,只要文本在手就不会冷场,还是好处多多的。3.2..1...开始爬虫之旅(今天说了两段废话,这习惯得改)


今天的爬虫主要是为了复习下正则,所以相对还是可以的,那么先来看一下网页源代码吧

需要爬的就是被圈起来的作者名、好笑数(大概类似于点赞量)和正文内容,看起来不是很难的样子,那么,上代码

import re
import bs4
import urllib
import urllib2
import time
f = open('QB.text','a+')
def  gethtml():
    for i in range(1,4):
        url = 'http://www.qiushibaike.com/8hr/page/%d/'%i
        user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0'  
        headers = { 'User-Agent' : user_agent }
        response = urllib2.Request(url, headers=headers)
        html = urllib2.urlopen(response).read()
        pattern = re.compile(r'<div class="author clearfix">.*?href.*?<img src.*?title=.*?<h2>(.*?)</h2>.*?<div class="content">(.*?)</div>.*?<i class="number">(.*?)</i>',re.S)  #在正则中S可用于大小写匹配
        reg = re.finditer(pattern,html)
        for item in reg:
            i = re.sub(r'<span>', '', item.group(2))     # 由于按照上面的正则会使结果中出现我们不需要的标签,使用sub函数进行替换
            i = re.sub(r'<br/>', '', i)
            i = re.sub(r'</span>','',i)
            f.write(item.group(1)+item.group(3)+'\n'+i)
    f.close()

gethtml()

有关代码部分的问题请见注释。

欢迎大神批评指教,THANKS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值