返回的页面只能在文本编辑器中查看,如下所示:
<html style="height:100%">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta name="format-detection" content="telephone=no"><meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<script type="text/javascript" src="/_Incapsula_Resource?SWJIYLWA=2977d8d74f63d7f8fedbea018b7a1d05"></script>
</head>
<body style="margin:0px;height:100%">
<iframe src="/_Incapsula_Resource?CWUDNSAI=23&xinfo=8-12690372-0 0NNN RT(1406173695342 164) q(0 -1 -1 -1) r(0 -1) B12(4,315,0) U10000&incident_id=257000050029892977-66371435311988824&edet=12&cinfo=4b6fe7bcc753855a04000000" frameborder=0 width="100%" height="100%" marginheight="0px" marginwidth="0px">Request unsuccessful. Incapsula incident ID: 257000050029982977-66371435131988824</iframe>
</body>
</html>我正在perl中执行以下操作:
# Suddenly web robot.
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Mac Safari');他们是怎么发现的?它不能仅仅来自用户代理字符串,我不认为。有什么办法绕过这件事吗?我没有做什么讨厌的事,只是想下载我的退休账户储蓄,而不必手动下载。
我看到了一些关于如何尊重robots.txt的结果,但是对于如何逃避检测却没有任何结果。
通过Chrome浏览页面,他们似乎以某种方式使用了这些家伙:
http://www.incapsula.com/website-security/
有人有什么想法吗?
发布于 2014-07-24 07:12:06
我建议您使用一种可以让您劫持浏览器进行自动化的替代方法。
这有一个副作用,它将使您能够使用Javascript,这可能是本网站的一个要求无论如何。
有两种选择:
WWW::Mechanize::Firefox --像使用WWW::Mechanize一样使用火狐Selenium::Remote::Driver - Perl客户端发布于 2014-07-24 04:10:47
它使用Bot Agent Detection技术。
Bot代理检测是为了识别执行站点抓取的最常见的bot代理,并阻止它们造成任何进一步的伤害。为此,使用了各种先进的软件,自动区分机器人和实际的人类用户。您提到的站点正在使用来自incapsula的一些软件来检测机器人。我建议:如果不允许使用,就不要尝试刮取数据。他们可能会通过JavaScript设置一些饼干,而这些饼干不会被机械设备捡到。
请参阅:利用Plack中间件检测机器人和蜘蛛和如何防止站点刮伤?
绕过的提示:
sleep的调用,以防止触发机器人检测代码。https://stackoverflow.com/questions/24924954
复制相似问题