2009-02-07 59 views
3

我用來創建一些爬蟲來編譯信息,當我來到一個網站我需要的信息我開始一個新的爬蟲特定的網站,大部分時間和某些時候使用shell腳本PHP 。如何最好地開發網絡爬蟲

我做的方法是使用一個簡單的for迭代的頁面列表,wget不要下載並sedtrawk或其他工具來清潔頁面,抓住具體信息,我需要。

所有的過程都需要一些時間,具體取決於網站和更多的下載所有頁面。我常常步入一個AJAX網站,這使得所有事情變得複雜。我想知道是否有更好的方法來做到這一點,更快的方式,甚至一些應用程序或語言來幫助這樣的工作。

回答

6

使用正則表達式解析內容是一個壞主意這已經在這裏無數次的問題中被覆蓋。

您應該將文檔解析到DOM樹中,然後才能提取所需的任何超鏈接,樣式表,腳本文件,圖像或其他外部鏈接並相應地遍歷它們。

許多腳本語言都有用於獲取網頁(例如curl for PHP)和用於解析HTML的軟件包(例如用於Python的Beautiful Soup)。走這條路線,而不是正則表達式匹配的hackky解決方案。

+0

我認爲[XMLawk](http://gawkextlib.sourceforge.net/)可能是一個選擇。 – 2013-06-07 06:40:05

2

如果您使用python,Scrapy是偉大的易於使用。