常见爬虫反扒措施

# 1. header (例子: 全国动产抵押监督管理平台)
浏览器的请求头

# 2. User-Agent (例子: 全国动产抵押监督管理平台)
用户代理,表明访问源身份的一种方式

# 3. Referer (例子: 中国裁判文书网)
访问的目标链接是从哪个链接跳转过来的(做防盗链的话,就可以从它入手)
HTTP来源地址(referer,或 HTTP referer)是HTTP表头的一个字段,用来表示从哪儿链接到目前的网页,采用的格式是URL。
换句话说,借着HTTP来源地址,目前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

# 4. Host (例子: IT桔子)
同源地址判断,用它会很有用 

# 5. IP (例子: 搜狗微信)
同一个IP短时多次访问,就很有可能是爬虫,反爬虫会对此做处理

# 6. 访问频率 (例子: 搜狗微信)
短时多次高并发的访问,基本上就是有问题的访问

# 7. Cookie (例子: 北京市企业信用信息网)
存储在浏览器端,常用来保存“认证数据”,请求会携带这些数据发送给服务器,这样服务器才能判断当前请求的状态 

# 8. 动态请求加载 (例子: 大众点评)
通过Ajax异步加载的网页内容在网页源码中是没有的,网页返回的response中是解析不到我们想要的内容的

# 9. 网站数据加密 (例子: 去哪儿)
抓取下来的数据是经过加密的,给爬虫数据处理带来问题

# 10. 混淆js加密 (例子: 中国裁判文书网)
首次请求数据时,服务端返回动态的混淆加密过的JS,而这段JS的作用是给Cookie添加新的内容用于服务端验证,此时返回的状态码一般不是200。
浏览器带上新的Cookie再次请求,服务端验证Cookie通过返回数据, 这也是为什么代码不能返回数据的原因

# 11. 验证码 (例子: 12306)
用户请求频率过高的时候,有些网站就会触发验证码验证机制,让你输入各种验证码 

# 12. 登录 (例子: IT桔子)
需要用户登录之后才能够获取页面中的信息,那么这种防护能非常有效的防止数据大批量的被爬取 

# 13. 限制网页返回数据条数 (例子: IT桔子)
网页刚开始会显示很多条,当你账号或者一段时间后网页返回数据,你只能局限于前几页或者前几条 

# 14. Noscript标签的使用 
<noscript>标签是在浏览器(或者用户浏览标识),没有启动脚本支持的情况下触发的标签,
在低级爬虫中,基本都没有配置js引擎,通常这种方式和Ajax异步加载同时使用, 用于保护自己不想让爬虫接触的信息。
当JavaScript被禁用或者不被支持时提供的一种代替方式,即 noscript 标签中的内容会在此时被浏览器解析,作为 javascript 不可用时的备选方案。

参考: https://blog.csdn.net/python36/article/details/90174300

posted @ 2020-08-16 18:02  给你加马桶唱疏通  阅读(316)  评论(0编辑  收藏  举报