1. 程式人生 > 實用技巧 >Python即時網路爬蟲專案啟動說明

Python即時網路爬蟲專案啟動說明

wKioL1c0RZKxd7EaAAAl9nnpAr0577.jpg

作為酷愛程式設計的老程式設計師,實在按耐不下這個衝動,Python真的是太火了,不斷撩撥我的心。


我是對Python存有戒備之心的,想當年我基於Drupal做的系統,使用php語言,當語言升級了,推翻了老版本很多東西,不得不花費很多時間和精力去移植和升級,至今還有一些隱藏在某處的程式碼埋著雷。我估計Python也避免不了這個問題(其實這種聲音已經不少,比如Python 3 正在毀滅 Python)。


但是,我還是啟動了這個Python即時網路爬蟲專案。我用C++、Java和Javascript編寫爬蟲相關程式超過10年,要追求高效能,非C++莫屬,同時有完善的標準體系,讓你和你的系統十分自信,只要充分測試,就能按照預期的方式執行。在GooSeeker專案中,我們不斷向一個方向努力——“

收割資料”,而且讓廣大使用者(不僅是專業的資料採集使用者)都能體驗到收割網際網路資料的快感。“收割”的一個重要含義就是大批量。現在,我要啟動“即時網路爬蟲”,目的是要補充“收割”沒有覆蓋的場景,我看到的是:

  • 在系統層面:“即時”代表快速部署資料應用系統

  • 在資料流層面:“即時”代表採集資料到資料使用是即時的,單個數據物件可以獨自全流程處理,不用等待一批存入資料庫,然後從資料庫中拿出來用

  • “即時”另一個含義就是網路爬蟲是一個嵌入模組,跟整個資訊處理系統整合在一起

120228qojqc66gj6ar3qv3.png

一眾程式設計師都在玩Python網路爬蟲,我擬定了一個計劃:建立一個模組化更強的軟體部件,專門解決最耗費精力的內容提取問題(有人總結說大資料和資料分析整個鏈條上,資料準備佔了80%工作量,我們不妨延展一下,網路資料抓取的工作量有80%是在為各種網站的各種資料結構編寫抓取規則)。



我把他想象成一個小機器(見上圖),輸入的是原始網頁,輸出的是提取出來的結構化的內容,這個小機器還有一個可替換部件:將輸入轉化成輸出結構的一個指令塊,我們成為“提取器”,讓大家不再為除錯正則表示式或者XPath而苦惱。

這是一個開放的專案,兩年前啟動了一個手機上的即時網路爬蟲專案,因為是給某商業集團開發的,所以不便開放,同樣的思想和方法將開放到這個專案中,而且用當前最熱的python來做,希望大家能共同參與。在執行過程中,我們會開放所有資料和成果、已經遇到的坑。

近期做的實驗是


轉載於:https://blog.51cto.com/gooseeker/1772738