码迷,mamicode.com
首页 > 编程语言 > 详细

Python 爬虫系列:糗事百科最热段子

时间:2018-03-29 23:13:16      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:load   soup   target   分享图片   tar   lib   子类   find   写代码   

1.获取糗事百科url

http://www.qiushibaike.com/hot/page/2/    末尾2指第2页

2.分析页面,找到段子部分的位置, 需要一点CSS和HTML的知识

3、编写代码

 1 import urllib.request
 2 from bs4 import BeautifulSoup
 3 from urllib.request import URLError
 4 from urllib.request import HTTPError
 5 import time
 6 # 调用 publicHeaders 文件的方法
 7 from 爬虫.publicHeaders import set_user_agent
 8 
 9 
10 # 抓取网页
11 def download(pagenum):
12     url = rhttps://www.qiushibaike.com/hot/page/
13 
14     # 分页下载
15     for i in range(1,pagenum):
16         #组装url
17         new_url = url + str(pagenum)
18         print(new_url)
19         # 有的时候访问某个网页会一直得不到响应,程序就会卡到那里,我让他1秒后自动超时而抛出异常
20         header = set_user_agent()
21         while 1:
22             try:
23                 req = urllib.request.Request(url=new_url,headers=header)
24                 reponse = urllib.request.urlopen(req,timeout=1)
25                 break
26             # HTTPError是URLError的子类,在产生URLError时也会触发产生HTTPError。因此应该先处理HTTPError
27             except HTTPError as e:
28                 print(e.code)
29                 # 对于抓取到的异常,让程序停止1.1秒,再循环重新访问这个链接,访问成功时退出循环
30                 time.sleep(1.1)
31             except URLError as err:
32                 print(err.reason)
33         # 正常访问,则抓取网页内容
34         html = reponse.read().decode(utf-8)
35         # 找到所有的class名称为content 的div
36         soup = BeautifulSoup(html,"html.parser")
37         contents = soup.findAll("div",{"class":"content"})
38         # # 循环遍历保存每一项,并保存
39         with open("E:\JustForFun.txt", "w") as f:
40             for item in contents:
41                 # 有些内容不是utf-8格式
42                 try:
43                     each_story = item.get_text()
44                 #print(type(each_story))
45                     f.writelines(each_story)
46                 except:
47                     pass

4、执行以下,结果如下:

技术分享图片

 

Python 爬虫系列:糗事百科最热段子

标签:load   soup   target   分享图片   tar   lib   子类   find   写代码   

原文地址:https://www.cnblogs.com/scios/p/8673033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!