2012-08-25 95 views
8

我使用HtmlUnit從動態網頁抓取數據,動態網頁使用無限滾動來動態抓取數據,就像Facebook的新聞源一樣。我用下面的語句來模擬向下滾動事件:使用htmlunit抓取動態網頁

webclient.setJavaScriptEnabled(true); 
webclient.setAjaxController(new NicelyResynchronizingAjaxController()); 
ScriptResult sr=myHtmlPage.executeJavaScript("window.scrollBy(0,600)"); 
webclient.waitForBackgroundJavaScript(10000); 
myHtmlPage=(HtmlPage)sr.getNewPage(); 

但似乎myHtmlPage保持與前一個,即新的數據沒有myHtmlPage附加相同的,因此我只能抓取第一網頁上的數據很少。謝謝你的幫助!

+0

你找到了解決辦法? –

+0

任何解決方案? –

+0

也在尋找解決方案。任何結果? – lummycoder

回答

0

我在尋找同樣的東西。我只能發現它不是滾動事件(90%肯定)。 JS上有link這是負責加載頁面,也許可以幫助你。

0

我有類似的問題,在頁面滾動期間內容是後加載的。我解決了它使用:

webClient.getCurrentWindow().setInnerHeight(Integer.MAX_VALUE);

+1

不適合我 –