2014-09-04 70 views
4

我試圖使用casper來刮取網站,並且當頁面加載時,我看到有很多導航請求isMainFrame = false。我猜這是廣告。從詳細日誌的一個例子 -在Casper JS中停止導航請求

[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 

這真是拖慢了劇本,我不想卡斯帕花時間讀取/導航到這些URL。

要停止這些,我想我將不得不趕上事件navigation.requested並在那裏停止。但我不知道如何停止導航。

我想我會做這樣的事情 -

casper.on 'navigation.requested', (url, navigationType, navigationLocked, isMainFrame) -> 
     if not isMainFrame 
     //stop this navigation 
     else 
     //proceed normally 

任何想法,我該怎麼辦呢?

回答

0

有同樣的問題。探討了消息來源。

看起來你不能在沒有修補的情況下做到這一點。

什麼可以做的是在hosts文件中添加一個條目,以便這個請求將以非常快的速度完成。