做爲酷愛編程的老程序員,實在按耐不下這個衝動,Python真的是太火了,不斷撩撥個人心。php
我是對Python存有戒備之心的,想當年我基於Drupal作的系統,使用php語言,當語言升級了,推翻了老版本不少東西,不得不花費不少時間和精力去移植和升級,至今還有一些隱藏在某處的代碼埋着雷。我估計Python也避免不了這個問題(其實這種聲音已經很多,好比Python 3 正在毀滅 Python)。python
可是,我仍是啓動了這個Python即時網絡爬蟲項目。我用C++、Java和Javascript編寫爬蟲相關程序超過10年,要追求高性能,非C++莫屬,同時有完善的標準體系,讓你和你的系統十分自信,只要充分測試,就能按照預期的方式運行。在GooSeeker項目中,咱們不斷向一個方向努力——「收割數據」,並且讓廣大用戶(不只是專業的數據採集用戶)都能體驗到收割互聯網數據的快感。「收割」的一個重要含義就是大批量。如今,我要啓動「即時網絡爬蟲」,目的是要補充「收割」沒有覆蓋的場景,我看到的是:程序員
在系統層面:「即時」表明快速部署數據應用系統正則表達式
在數據流層面:「即時」表明採集數據到數據使用是即時的,單個數據 對象能夠獨自全流程處理,不用等待一批存入數據庫,而後從數據庫中拿出來用數據庫
「即時」另外一個含義就是網絡爬蟲是一個嵌入模塊,跟整個信息處理系統集成在一塊兒編程
一衆程序員都在玩Python網絡爬蟲,我擬定了一個計劃:創建一個模塊化更強的軟件部件,專門解決最耗費精力的內容提取問題(有人總結說大數據和數據分析整個鏈條上,數據準備佔了80%工做量,咱們不妨延展一下,網絡數據抓取的工做量有80%是在爲各類網站的各類數據結構編寫抓取規則)。segmentfault
我把他想象成一個小機器(見上圖),輸入的是原始網頁,輸出的是提取出來的結構化的內容,這個小機器還有一個可替換部件:將輸入轉化成輸出結構的一個指令塊,咱們成爲「提取器」,讓你們再也不爲調試正則表達式或者XPath而苦惱。網絡
這是一個開放的項目,兩年前啓動了一個手機上的即時網絡爬蟲項目,由於是給某商業集團開發的,因此不便開放,一樣的思想和方法將開放到這個項目中,並且用當前最熱的python來作,但願你們能共同參與。在執行過程當中,咱們會開放全部資料和成果、已經遇到的坑。數據結構
近期作的實驗是:模塊化