2012-12-06 108 views
3

什麼是最好的方式來抓取具有AJAX /動態加載數據的網頁?HTML頁面抓取

例如:抓取加載時呈現20張圖片的網頁,但當用戶向下滾動頁面時,它會加載更多圖片(有點像Facebook)。在這種情況下,你怎麼刮所有的圖像,不只是前20?

回答

2

使用這樣的工具,FiddlerWireShark檢查正在加載更多項目時所做的web請求。

然後在您的代碼中複製請求。


更新(感謝pguardiario OFR他的評論):

注意,Wireshark是一個低級別的網絡捕獲工具,提供詳細的大量關於業務(數據包進行交換,DNS lookps等等),並且在這種情況下可能會很痛苦,因爲您只希望看到HTTP請求。因此,您最好使用Fiddler或瀏覽器中的類似工具(例如:Chrome的網絡檢查面板)。

+1

提琴手是的,但wireshark會是一種痛苦。 Chrome的網絡檢查面板將完成這項工作。 – pguardiario

+0

@pguardiario是的,這也是一個很好的工具 – GolfWolf

2

這是甚至沒有主要的搜索引擎已經掌握了。它被稱爲「event-driven crawling」。

谷歌甚至對如何做才能help them crawl your ajax sites better

最好的辦法是閱讀一些open source crawlers,看看他們做什麼的指南。但是,除非你有一個特定的目標,否則爬滿80%的機會渺茫。

也有一些有趣的crawljax

讀取基本上,你應該嘗試尋找腳本和檢查,如果他們做任何Ajax調用,然後確定他們採取什麼樣的參數,並與遞增/遞減參數重複呼叫值。這僅適用於參數是否具有邏輯模式(如數字,單個字母等)的情況。這還取決於您是針對已知網站還是將其發送到野外。如果你知道你的目標,你可以檢查它的DOM,並按照狼提到的那樣定製你的代碼以獲得更高的準確性。

好運