爬虫 第二次入坑 基本流程

1.爬虫的基本流程

发送请求---》获取相应内容---》解析内容---》保存数据

 1 #1、发起请求
 2 使用http库向目标站点发起请求,即发送一个Request
 3 Request包含:请求头、请求体等
 4 
 5 #2、获取响应内容
 6 如果服务器能正常响应,则会得到一个Response
 7 Response包含:html,json,图片,视频等
 8 
 9 #3、解析内容
10 解析html数据:正则表达式,第三方解析库如Beautifulsoup,pyquery等
11 解析json数据:json模块
12 解析二进制数据:以b的方式写入文件
13 
14 #4、保存数据
15 数据库
16

 

1 #http协议:http://www.cnblogs.com/haiyan123/p/7298967.html
2 
3 #Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)
4 
5 #Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)
6 
7 #ps:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。

 

Request

1和2只是在response处有所不同

1是先把url后面的分组处理了下,然后字符串拼接成url,2是直接把分组的值放到params这个字典里。其它地方都一样。结果也一样。

 1 import requests
 2 from urllib.parse import urlencode
 3 
 4 kwords = input('please input keywords:>> ').strip()
 5 res = urlencode({'wd': kwords})
 6 print(res)  # wd=%E5%B0%8F%E7%8B%97
 7 url = 'http://www.baidu.com/s?' + res
 8 print(url)  # http://www.baidu.com/s?wd=%E5%B0%8F%E7%8B%97
 9 
10 response = requests.get(
11     url,
12     headers={
13         # google的User-Agent用above:version查找
14         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
15 
16     },
17 
18 )
19 with open('a.html','w',encoding = 'utf-8') as f:
20     # f.write(response.text)把获得的响应体写入到文件中
21     print(f.write(response.text))
22 
23 print(response.status_code)
示例一
 1 kwords = input("请输入关键字:>>").strip()
 2 response = requests.get(
 3     "https://www.baidu.com/s?",
 4     # 请求的url,当你在百度输入中文的时候,你把url拿下来会变成下面的这样格式的url
 5     params={
 6         "wd":kwords,
 7         'pn':20
 8     },
 9     # 请求头
10     headers={
11         "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",
12     },
13 )
14 with open("b.html","w",encoding="utf-8") as f:
15     f.write(response.text)
16 # print(response.status_code)
17 
18 示例代码二(和上面的结果是一样的)
示例二

 

Response

 1 #1、响应状态
 2     200:代表成功
 3     301:代表跳转
 4     404:文件不存在
 5     403:权限
 6     502:服务器错误
 7 
 8 #2、Respone header
 9     Location:跳转
10     set-cookie:可能有多个,是来告诉浏览器,把cookie保存下来
11     
12 #3、preview就是网页源代码
13     最主要的部分,包含了请求资源的内容
14     如网页html,图片
15     二进制数据等

总结

 1 #1、总结爬虫流程:
 2     爬取--->解析--->存储
 3 
 4 #2、爬虫所需工具:
 5     请求库:requests,selenium
 6     解析库:正则,beautifulsoup,pyquery
 7     存储库:文件,MySQL,Mongodb,Redis
 8 
 9 #3、爬虫常用框架:
10     scrapy

 

posted @ 2018-09-04 20:11  Roc_Atlantis  阅读(204)  评论(0编辑  收藏  举报