所以我试图抓住一个网站(https://shop.advanceautoparts.com/),我可以通过CasperJS在过去几周内正常访问它。当我现在尝试这样做时(就像2天前一样)我收到一条奇怪的消息,说该网站处于离线状态:
当我尝试使用普通浏览器或PhantomJS时,我会获得正常的网站。我尝试在不同的计算机上进行操作,更改我的IP,更改用户代理但没有任何作用。
编辑
在PhantomJS上尝试相同的事情后,在运行代码大约5次后,我得到了相同的消息。这是网站正在采取哪些措施来防止刮擦?
答案 0 :(得分:1)
我怀疑网站知道你正在根据你的用户代理进行抓取,因为你多次击中它
也许尝试随意使用您的使用者,看看会发生什么。 (see list here)
var casper = require('casper').create({
pageSettings: {
userAgent: "USE SOME OTHER USER AGENT HERE"
}
});
但是,在多个同时请求之后,该站点也可能被IP地址阻止。因此,请尝试a)减慢脚本速度或b)导航到不同的页面
击>
修改强>
我已经将测试脚本拼凑在一起,所有这些都适合我。 重要位是:
casper.waitUntilVisible("#header-top", function() {
HTH