對於互聯網人來講,web data scraping (web數據採集)已經成爲一個迫切而又實在的需求。在現在這個開源的時代,問題每每不在因而否有解決方案,而是如何選擇適合你的解決方案,由於老是有不少潛在的方案供你選擇。web data scraping固然也不例外,筆者認爲,咱們至少有四種類型的方案能夠選擇,javascript
1. web scraping softwarehtml
專用的數據採集軟件不須要你編寫任何代碼,你只須要配置一些信息,例如採集的目標網址、興趣字段等等。然而,學習如何使用這些軟件倒是一項很是費力的事情,大部分都須要有必定的技術背景,經常須要了解的技術有:xpath, html, regular expression。筆者列舉幾款這方面的軟件以下, java
火車頭採集器----支持輸出到各類數據庫node
A1 Website Scraper------ 支持輸出到csv文件;python
bget web data extraction----- 支持輸出到數據庫和csv文件;git
更多這方面的軟件信息,能夠參考這份文檔: collections of web scraping software and servergithub
2. web scraping frameworkweb
scraping framework多是developer的最佳選擇,由於其功能強大且效率高,並且有適用於不一樣平臺的framework可供選擇,例如:數據庫
scrapy, python平臺express
upton, ruby平臺
pismo, ruby平臺
, ruby平臺
node.io, node.js平臺
crawler, node.js平臺
筆者認爲,python在數據處理方面具備強大的優點,更重要的是,python也很是適合實際產品的開發,筆者執着而堅決地推薦scrapy做爲web scraping的首選.
3. web scraping service
若是你只是想得到數據,而又不肯意勞心費神的去學習具體的scraping技術,那麼一家可靠的web scraping service服務商多是你最好的選擇,比較知名的web scraping service有以下幾個:
4. 其餘的選擇
Selenium 本來是瀏覽器自動化測試工具,可是也能夠用於web scraping。 若是你採集的網頁內容是由javascript自動生成的,那麼你可能須要Selenium, 由於其餘的scraping方案中的html parser每每都不支持javascript,例如scrapy。另外,有不少網站禁止scraping, 這個時候你也須要Selenium, 由於Selenium徹底是模擬人的瀏覽行爲,Selenium本質上是工做於瀏覽器之上的。
固然,咱們也能夠選擇不少基於javascript的scraping方案,例如PhantomJS 就是一種很是好的選擇,PhantomJS本質上也是模擬了瀏覽器。