百度百科的定义: 爬虫是一种按照一定的规则, 自动地抓取万维网信息的程序或者脚本.
网站一般肯定都不喜欢让你爬取.
反爬机制: 对应的载体是网站, 防止爬虫爬取数据.
反反爬策略: 对应的载体是爬虫程序
常见的反爬机制及应对策略:
1. 校验 Headers, 查看请求头, 是浏览器还是机器, 以及对 Referer (上级链接) 进行检测.(针对策略: 对请求头信息进行伪装, 封装到 requests 请求头中)
2.IP 限制, 限制一个 ip 地址, 短时高频的请求.(针对策略: 使用代理 IP, 更换 IP 地址. 注意 ip 代理的匿名程度)
3. UA 限制, 校验请求头中 User-Agent 参数.(针对策略: 伪装一下)
4. 验证码反爬虫或者模拟登陆, 通过校验验证码以及用户是否登陆.(针对策略: 可使用第三方验证码识别平台识别验证码, 使用 requests 的 Session 功能, 记录 cookie, 模拟登陆)
5. 数据动态加载, 把展示数据通过 Ajax 动态请求添加到页面中, 防止爬虫程序直接获取.(针对策略: 通过抓包工具, 网页检查等, 对请求 url 识别和处理, 从而获得响应数据)
6.cookie 限制, 通过校验 cookie 进行识别爬虫还是浏览器.(针对策略: cookie 不常变化的可以手动在请求头中添加 cookie 参数, cookie 经常变化的可以使用 Session 的对象去发请求, 过于麻烦的情况可以使用 selenium 模块, 完全模拟浏览器行为)
爬虫的分类:
1. 通用爬虫: 抓取一整张页面源码内容
2. 聚焦爬虫: 抓取页面中局部的内容
3. 增量式爬虫: 可以监测网站数据更新的情况, 抓取网站中最新更新出来的数据
爬虫的合法性:
1. 干扰了被访问网站的正常运营
2. 抓取了收到法律保护的特定类型的数据或信息
规避违法风险:
遵守 robots 协议
优化程序, 避免敏感数据
使用传播抓取到的信息时, 注意个人隐私等敏感信息.
网站的 robots 协议:
网站告诉爬虫可以爬取的数据路径.(一般在网站 url 后直接添加 robots.txt 查看)
robots 协议防君子不防小人, 并不能够真正的去防止爬虫程序
来源: http://www.bubuko.com/infodetail-3108777.html