了解爬虫
一:>什么是爬虫?
*可以针对目标地址进行数据采集的计算机程序 *爬虫程序:发送请求给服务器,获取服务器数据 * 爬虫程序发送的请求可以通过抓包(fiddler,wareshark等)来实现 * 浏览器发送的请求可以通过F12来实现
二:>爬虫的分类(通用爬虫 VS 聚焦爬虫)(累积爬虫 VS 增量爬虫)
*通用爬虫:一般使用在搜索引擎中的,在进行数据采集的过程中,要遵循Robot协议,他可以将 自己的网站让更多的人通过搜索引擎访问(Robot协议:是一种约定的规范,针对通 过爬虫进行的数据采集限制)
*聚焦爬虫:一般是自己独立开发的爬虫采集数据的程序,针对性较强,每个数据采集任务,都有 可能要开发一套新的项目
*累积爬虫:历史数据不会发生变化,一旦数据执行完成,数据就是固定不变的(PS:采集彩票历 史数据,方便对下一期进行预测评估)
*增量爬虫:需要实时对历史采集的数据进行更新(PS:新闻网页,微博热搜)
三:>爬虫的实现
开发环境:python2.7 开发工具:pycharm
python2.7使用 ascii 编码,不支持中文,所以写代码第一行的位置,要添加支持中文的注释(coding:utf-8),使用python2.7的原因是开发周期短,操作更加灵活且在爬虫方向支持的模板更多,还可通过“Java,PHP,C++,C#,Ruby”等实现爬虫
四:>爬虫的操作
1.代码开发:urllib2 底层数据的采集采用 urlopen() 函数,可以向服务器发送请求
2.伪造请求:伪装浏览器请求 *请求对象:请求头数据,请求体数据,请求方式 *在这里主要通过请求头的 User-agent 设置,完成浏览器请求的伪装 (请求中的K键值单词 首字母必须大写) *请求核心对象:urllib2.Request 对象
3.模仿用户行为:只有在特殊的情况下才会使用,因为随机休眠严重影响爬虫采集数据的效率
4.隐藏客户端:使用IP代理(免费代理&收费代理),代理真实客户端完成对服务器数据的访问 *正向代理(代购):代理客户端发起请求,向服务器发送数据,隐藏客户端 *反向代理(代理商):代理的服务端,隐藏真实服务器信息 * urlopen 底层操作: *操作对象:urllib2.ProxyHandler( { 填写代理的IP地址 } ) *开锁对象:urllib2.build_opener(handler) *发送请求:res = opener.open(url)