动态网页抓取(网站如何设置反爬虫,爬虫又该如何应对?(图))
优采云 发布时间: 2022-01-23 09:03动态网页抓取(网站如何设置反爬虫,爬虫又该如何应对?(图))
有爬虫,自然就有反爬虫。网站越成熟,它的反爬机制就越完善。初始IP限制、验证码限制等限制,今天就来了解一下网站 反爬虫如何设置,爬虫应该如何应对。
网站的反爬虫策略有哪些以及如何应对
1、用户行为反爬虫
网站的一部分是通过检测用户行为,比如同一个IP在短时间内多次访问同一个页面,或者同一个账号在短时间内多次执行相同的操作。
大多数网站都是前一种情况,使用IP代理就可以了。检测后我们可以将代理IP保存在文件中,但是这种方法不可取,代理IP失败的可能性非常高,所以从真实的专用代理IP网站中抓取是个不错的选择时间。
对于第二种情况,下一个请求可以在每个请求之后以几秒的随机间隔发出。一些有逻辑漏洞的网站可以通过多次请求、注销、重新登录、继续请求的方式绕过同一账号短时间内不能多次请求的限制。
还有就是对于cookies,通过检查cookies来判断用户是否是合法用户,网站需要登录的人经常会用到这个技术。更深入地讲,一些 网站 登录会动态更新身份验证。登录时会随机分配用于登录认证的authentication_token,并将authentication_token连同用户提交的登录名和密码一起发送回服务器。
网站的反爬虫策略有哪些以及如何应对
2、通过Headers反爬虫
反爬取用户请求的头部是最常见的反爬取策略。很多网站会检测Headers的User-Agent,有的网站会检测Referer(有些资源的防盗链网站就是检测Referer)。
如果遇到这样的反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值改为目标网站域名。对于检测Headers的反爬虫,在爬虫中修改或添加Headers可以很好的绕过。
3、限制对某些 IP 的访问
免费代理 IP 可以从许多 网站 处获得。由于爬虫可以使用这些代理 IP 进行 网站 的爬取,所以 网站 也可以使用这些代理 IP 进行反向限制。IP 保留在服务器上,以限制使用代理 IP 进行爬取的爬虫。
网站的反爬虫策略有哪些以及如何应对
4、动态页面的反爬虫
有时候抓取目标页面,发现关键信息内容是空白的,只有frame code,这是因为网站的信息通过用户Post的XHR动态返回内容信息,解决这个问题的方法是通过开发者工具(FireBug等)分析网站流,找到单独的内容信息请求(如Json),爬取内容信息,获取需要的内容。
稍微复杂一点的是动态请求是加密的,无法解析参数,所以无法爬取。在这种情况下,可以使用 Mechanize 和 selenium RC 调用浏览器内核,就像使用浏览器上网一样,可以最大限度地捕获成功,但效率会降低。