爬虫从入门到升仙之概念篇
软件安装
使用anacinda3 类似pythcarm的工具
1.爬虫的知识点
狱友你好
1.1什么是爬虫
就是通过编写程序模拟浏览器上网,让其去互联网中抓取数据的过程。
1.2爬虫的分类:
- 通用爬虫:爬取一整张页面源码数据。
- 聚焦爬虫:爬取页面中局部的数据。一定是在通用爬虫的基础上实现。
- 数据解析
- 增量式爬虫:用来监测网站数据更新的情况。以便于爬取最新更新出来的数据!
1.3爬虫合法性探究:
- 爬虫的风险体现:
- 爬虫干扰了被访问网站的正常运营;
- 爬虫抓取了受到法律保护的特定类型的数据或信息。
1.4如何规避风险:
- 严格遵守网站设置的robots协议;
- 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;
- 在使用、传播抓取到的信息时,应审查所抓取的内容,如发现属于用户的个人信息、隐私或者他人的商业秘密的,应及时停止并删除。
1.5反爬机制
-
门户网站通过相应的策略和技术手段,去约束,防止爬虫程序进行网站数据的爬取
- robots协议:存在于服务器端的一个纯文本的协议。
- User-Agent:就是请求载体的身份标识。
- 特点:防君子不放小人
- robots协议:存在于服务器端的一个纯文本的协议。
1.6反反爬策略
-
爬虫程序通过相应的策略和技术手段,破解门户网站的反爬虫手段,从而爬取到相应的数据。
1.7http的头信息
- User-Agent #用户访问标识
- Connection:‘close’#有无连接的标识 长连接 keep—alive
- content-type #显示字符集设定
-
User-Agent:用户访问的标识
-
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' #模拟浏览器发送请求
-
Connection:
-
‘close’短连接 则在一次请求/响应之后,就会关闭连接
-
在首部字段中设置
Connection:keep-alive
和Keep-Alive: timeout=60
,表明连接建立之后,空闲时间超过60秒之后,就会失效。 -
如果在空闲第58秒时,再次使用此连接,则连接仍然有效,使用完之后,重新计数,空闲60秒之后过期。
-
在首部字段中只设置
Connection:keep-alive
,表明连接永久有效。 -
content-type #显示字符集设定
2.爬虫基本流程
1、发起请求
使用http库向目标站点发起请求,即发送一个Request
Request包含:请求头、请求体等
2、获取响应内容
如果服务器能正常响应,则会得到一个Response
Response包含:html,json,图片,视频等
3、解析内容
解析html数据:正则表达式,第三方解析库如Beautifulsoup,pyquery等
解析json数据:json模块
解析二进制数据:以b的方式写入文件
4、保存数据
数据库
文件
2.1请求与响应
#http协议:
http://www.cnblogs.com/linhaifeng/articles/8243379.html
#Request:
用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)
#Response:
服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)
#ps:
浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据