2014-01-05 18 views
11

我想從網站上刮取一些數據。Scrapy或Selenium或機械刮擦網頁數據?

基本上,網站有一些表格顯示並顯示大約50條記錄。對於更多的記錄,用戶必須點擊某個按鈕,這使得ajax調用獲得&顯示接下來的50條記錄。

我以前有關於Selenium webdriver(Python)的知識。我可以在Selenium中很快完成此操作。但是,Selenium是更爲自動化的測試工具,速度非常慢。

我做了一些R & D,發現使用Scrapy或Mechanize,我也可以做同樣的事情。

我應該爲Scrapy還是機械化或Selenium?

+0

你真的在尋找意見。這不是本網站的主要目的。有沒有關於這些選項的特別問題? –

+1

我真的很困惑,因爲我不知道其他兩種技術。 –

+6

用JavaScript刮臉網站可能會變得非常棘手。 Scrapy提供比Mechanize更好的功能來進行大規模的網絡爬取和解析,但是在這兩種情況下,都需要對網站進行類似於您的網站的反向工程(請求觸發按鈕,哪些參數,cookies,有效負載等)並在您的代碼中重現。 – Rolando

回答

8

我會建議您使用Mechanize和ExecJS(https://github.com/sstephenson/execjs)的組合來執行您可能遇到的任何JavaScript請求。我已經使用這兩種寶石相當長一段時間了,他們做得很好。

您應該選擇此選項而不是Selenium,因爲與使用無頭瀏覽器呈現整個頁面相比,它會快很多。

0

當然我會選擇Scrapy。如果你不能處理JavaScript,你可以嘗試使用Scrapy + splash。 Scrapy是目前爲止我所知道的網絡抓取最快的工具。 祝你好運!