1、什么是爬虫?
爬虫就是将网络中非结构化数据转化为结构化数据的工具。
通俗来讲:将网页数据存储到数据库过程。
2、爬虫的分类
a) 通用爬虫 VS 聚焦爬虫
i)通用爬虫:一般用在搜索引擎中,针对所有数据进行广泛采集[广度]
ii)聚焦爬虫:也称为定向爬虫,针对目标数据进行定向数据采集[深度]
b) 累计爬虫 VS 增量爬虫
i)累积爬虫:历史数据不会发生变化,一旦数据执行完成,数据就是固定的
ii)增量爬虫:需要实时对历史采集数据进行更新[历史数据会发生变化]
3、爬虫的实现
a) Java|Python|PHP|C++|Ruby|Dephil|.....
b) Python :更专业
4、爬虫的操作
a) urllib2 底层数据采集urlopen()函数
b) 伪造请求:伪造浏览器请求
i. 请求对象:请求头数据、请求体数据、请求方式
ii. 请求头中的User-agent设置,完成浏览器请求的伪装
iii. 请求对象:urllib2.Reuqest对象
c) 模仿用户行为:只有在特殊的情况下才会使用
i. 随机休眠严重影响爬虫采集数据的效率
d) 隐藏客户端:使IP代理,代理真是客户端完成对服务器数据的访问
i. 免费代理|收费代理 [透明代理|匿名代理|高匿代理]
ii. 正向代理|反向代理
1)正向代理:代理客户端发起请求,向服务器请求数据;隐藏客户端信息
2)反向代理:代理的服务端;隐藏真实服务器信息
iii. urlopen底操作
1. 操作对象:urllib2.ProxyHandler({...})
2. 开锁对象:urllib2.build_open(hander)
3. 发送请求:res =opener.open(url)