CasperJS 和 PhantomJS 触发 "site is offline" 浏览器没有
CasperJS and PhantomJS trigger "site is offline" browser doesn't
所以我正在尝试抓取一个站点 (https://shop.advanceautoparts.com/),并且在过去几周内我可以通过 CasperJS 正常访问它。当我现在尝试这样做时(大约 2 天前),我收到一条奇怪的消息,说该网站已离线:
当我在普通浏览器或 PhantomJS 上尝试时,我得到的是普通网站。我试过在不同的计算机上执行此操作,更改我的 IP,更改用户代理但没有任何效果。
编辑
在 PhantomJS 上尝试同样的事情后,运行 代码大约 5 次后我得到了相同的消息。这是该网站为防止抓取而采取的措施吗?
我怀疑该网站知道你在根据你的用户代理进行抓取,因为你多次点击它
也许可以尝试随机化您的用户代理,看看会发生什么。 (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
所以我正在尝试抓取一个站点 (https://shop.advanceautoparts.com/),并且在过去几周内我可以通过 CasperJS 正常访问它。当我现在尝试这样做时(大约 2 天前),我收到一条奇怪的消息,说该网站已离线:
当我在普通浏览器或 PhantomJS 上尝试时,我得到的是普通网站。我试过在不同的计算机上执行此操作,更改我的 IP,更改用户代理但没有任何效果。
编辑
在 PhantomJS 上尝试同样的事情后,运行 代码大约 5 次后我得到了相同的消息。这是该网站为防止抓取而采取的措施吗?
我怀疑该网站知道你在根据你的用户代理进行抓取,因为你多次点击它
也许可以尝试随机化您的用户代理,看看会发生什么。 (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