糗事百科段子爬取
爬取多页的段子
一、网站分析
(1)打开网站糗事百科,可以发现很多段子:
(2)经过翻页,可以发现网址的规律:
for k in range(0,10):
url = "http://www.qiushibaike.com/8hr/page/"
url = url + str(k) + "/?s=4985076"
(3)打开“查看源文件”,可以发现段子所在位置,可写出其正则表达式:
pat = '<div class="content">\s*?<span>(.*?)</span>.*?</div>'
二、代码编写
#糗事百科
import urllib.request
import re
headers = ("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
for k in range(0,10):
url = "http://www.qiushibaike.com/8hr/page/"
url = url + str(k) + "/?s=4985076"
data = opener.open(url).read().decode('utf-8','ignore')
pat = '<div class="content">\s*?<span>(.*?)</span>.*?</div>'
rst = re.compile(pat,re.S).findall(data)
for i in range(0,len(rst)):
print(rst[i])
print("----------------")
三、结果展示
如无意外,可以输出结果: