在Casper JS中停止导航请求

时间:2014-09-04 14:30:02

标签: phantomjs casperjs

我正在尝试使用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

知道我该怎么办?

1 个答案:

答案 0 :(得分:0)

有同样的问题。探索了消息来源。

看起来如果没有修补,你现在就无法做到。

可以做的是在hosts文件中添加一个条目,以便此请求完成得非常快。