我正在尝试使用 casper 抓取网站,当加载页面时,我发现有很多 isMainFrame = false
的导航请求。我猜这些都是广告。详细日志的示例 -
[debug] [phantom] Navigation requested: url=https://static.licdn.com/scds/common/u/lib/inject/0.4.2/relay.html?swf=https://static.licdn.com/scds/common/u/lib/inject/0.4.2/relay.swf&xdm_e=https://www.linkedin.com&xdm_c=default3784&xdm_p=1, type=Other, willNavigate=true, isMainFrame=false
这确实减慢了脚本速度,我不希望 casper 花费时间来获取/导航到这些 URL。
要停止这些,我想我必须捕获事件 navigation.requested
并将其停止在那里。但我不知道如何停止导航。
我想我必须做这样的事情 -
casper.on 'navigation.requested', (url, navigationType, navigationLocked, isMainFrame) ->
if not isMainFrame
//stop this navigation
else
//proceed normally
知道我该怎么做吗?
最佳答案
遇到同样的问题。探索了来源。
看来目前如果不打补丁就无法做到这一点。
您可以做的是在hosts
文件中添加一个条目,以便该请求能够非常快地完成。
关于phantomjs - 停止 Casper JS 中的导航请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668130/