PHP或者python進行數據採集和分析,有什麼比較成熟的框架?
我現在需要對一個網站的文章列表和列表裡面的實際內容進行自動化數據採集,列表裡面能夠取得每個文章的id,而每個文章又是通過一個統一的介面(參數帶上那個文章id即可獲取到對應的json)裡面又有一部分數據需要採集然後進行數據分析。
目前有什麼比較成熟的框架或者輪子能夠實現我的需求嗎?(要多線程,而且可以7x24小時穩定運行,因為採集數量巨大)另外問一下,採集到的內容如何存儲(百萬到千萬),數據裡面有一些數字數據,需要進行統計分析,用mysql可以嗎?或者說還有其他更加成熟簡便的輪子可以用嗎?
python下比較成熟的爬蟲框架有:
(1)scrapy,鼎鼎大名,目前也支持到py3了。(2)pyspider,國人開發的,帶有狀態界面,也挺不錯。另外,如果你喜歡自己造輪子,或者喜歡折騰,試試這個吧:http://zhuanlan.zhihu.com/p/23017812
另外,mysql應該能滿足你的需求!做數據採集用Python最佳,PHP不太推薦。推薦幾個庫吧:
Python:PHP:1.requests 很好用的http庫,中文文檔:Requests: 讓 HTTP 服務人類
2.BeautifulSoup 很好用很強大的html解析庫,中文文檔:Beautiful Soup 4.4.0 文檔3.Scrapy 知名爬蟲框架,中文文檔:Scrapy 0.25 文檔
1.Guzzle 很好用PHP HTTP庫,再也不用寫原生的curl了。中文文檔:快速入門 — Guzzle中文文檔
2.html-parser HTML解析庫,項目地址:GitHub - bupt1987/html-parser: php html parser,類似與PHP Simple HTML DOM Parser,但是比它快好幾倍3.php-html-parser 老外的html解析庫,和上面那個用起來差不多,項目地址:GitHub - paquettg/php-html-parser: An HTML DOM parser. It allows you to manipulate HTML. Find tags on an HTML page with selectors just like jQuery.4.phpspider 知乎上某人寫的php爬蟲庫,暫時沒用過,可以看看,項目地址:https://github.com/owner888/phpspider
至於資料庫,mongoDB、MySQL都可以。
Python 有輪子 Scrapy | A Fast and Powerful Scraping and Web Crawling Framework
1、建議用Python + urllib2(或requests) +gevent + bs 。2、百萬到千萬,用mysql完全可以。3、統計分析和資料庫無關。7X24小時不間斷長期運行,多線程,用現成的框架,似乎比較難找吧?多半年沒有寫爬蟲程序了,專欄也再沒有去更新,最近準備再做一輪開發,把以前零零散散用Python做的實驗串起來,形成一個完整的框架。
先上框架,python(轉自awesome-python)有
- scrapy
- cola
- demiurge
- feedparser
- grab
- MechanicalSoup
- portia
- pyspider
- robobrowser
再來php(轉自awesome-php)
- Embed
- Goutte
- php-spider
再說造輪子,基本流程如下:
網頁抓取 --- 網頁解析 --- 存儲數據 --- 數據分析
每一步都有許多框架。具體怎麼造,參照如何入門 Python 爬蟲? - 爬蟲(計算機網路)
最後,題主所說的mysql是第三步(當然也能進行一些數據分析),如果要做深入的(比如python,不懂php),可以用MySQLdb在python里執行sql語句,從mysql里把需要的數據提取成dict類型,再使用scipy,scikit-learn做數據分析該說的上面都說了,會寫js的話推薦這個,https://github.com/bda-research/node-crawler
Scrapy爬蟲框架很好用的。另外requests庫也好用。資料庫可以選用NoSQL資料庫,不需要設計表結構。使用關係型資料庫抓數據有的時候可能會英文欄位大小出錯。。
推薦閱讀:
※超級菜鳥怎麼學習數據分析?
※機器學習中使用「正則化來防止過擬合」到底是一個什麼原理?為什麼正則化項就可以防止過擬合?
※想在機器學習做演算法的創新是否必須讀博士?
※你所在的公司或者領域在做哪些大數據應用?
※在機器學習中有哪些典型的Online演算法?