首 页
·
站长博客
·
用户注册
·
会员登陆
·
会员排行
·
最新主题
·
最近回复
☆
精华区
版权声明
·
论坛管理
当前登录身份:游客,请先登录。 笔名:
口令:
验证码:
楼 主
index
»
站务专区
»
网站的反爬虫策略该如何应对
作者:
pixiu
注册时间:2023-06-07
主题/回复:6/0
积分:
86
等级:★(二级)
称号:初出茅庐
用户联系方式已设置为保密
发表:2023-08-01 15:19:45 阅读
145
次 回复
0
次 得分
0
|
字号
10px
12px
14px
16px
18px
20px
24px
字色
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
▅▅▅▅▅
网站的反爬虫策略该如何应对
有爬虫自然就有反爬虫,越是成熟的网站,其反爬虫机制越完善,最初的IP限制,验证码限制,还有其他的限制,今天我们一起去了解下网站如何设置反爬虫,而爬虫又该如何应对。
1、用户行为反爬虫
有一部分网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。
大多数网站都是前一种情况,对于这种情况,使用IP代理就可以解决。我们可以将代理IP检测之后保存在文件当中,但这种方法并不可取,代理IP失效的可能性很高,因此从专门的代理IP网站实时抓取,是个不错的选择。
对于第二种情况,可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站,可以通过请求几次,退出登录,重新登录,继续请求来绕过同一账号短时间内不能多次进行相同请求的限制。
还有针对cookies,通过检查cookies来判断用户是否是有效用户,需要登录的网站常采用这种技术。更深入一点的还有,某些网站的登录会动态更新验证,登录时,会随机分配用于登录验证的authenticity_token,authenticity_token会和用户提交的登录名和密码一起发送回服务器。
2、通过Headers反爬虫
从用户请求的Headers反爬虫是最常见的反爬虫策略。很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。
如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
3、限定某些IP访问
免费的代理IP可以从很多网站获取到,既然爬虫可以利用这些代理IP进行网站抓取,网站也可以利用这些代理IP反向限制,通过抓取这些IP保存在服务器上来限制利用代理IP进行抓取的爬虫。
4、动态页面的反爬虫
有的时候将目标页面抓取下来,发现关键的信息内容空白一片,只有框架代码,这是因为该网站的信息是通过用户Post的XHR动态返回内容信息,解决这种问题的方法就是通过开发者工具(FireBug等)对网站流进行分析,找到单独的内容信息request(如Json),对内容信息进行抓取,获取所需内容。
更复杂一点的还有对动态请求加密的,参数无法解析,也就无法进行抓取。这种情况下,可以通过Mechanize,selenium RC,调用浏览器内核,就像真实使用浏览器上网那样抓取,可以最大限度的抓取成功,只不过效率上会打些折扣。
页数
1/1
:
首页
«
1
»
末页
发表回复:您还没有登陆,无法发表回复。请先
[登陆]
一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565
站长博客
E-mail:
nqp@nqp.me
执行时间:0.002sec
SimsmaBBS 2008 (v6.0)
Developed by
17php.com
,Copyright(C)2003-2010 All rights reserved. 副本授权:
一起PHP官方专用版