Python即時(shí)網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目啟動(dòng)說(shuō)明詳解
作為酷愛(ài)編程的老程序員,實(shí)在按耐不下這個(gè)沖動(dòng),Python真的是太火了,不斷撩撥我的心。
我是對(duì)Python存有戒備之心的,想當(dāng)年我基于Drupal做的系統(tǒng),使用php語(yǔ)言,當(dāng)語(yǔ)言升級(jí)了,推翻了老版本很多東西,不得不花費(fèi)很多時(shí)間和精力去移植和升級(jí),至今還有一些隱藏在某處的代碼埋著雷。我估計(jì)Python也避免不了這個(gè)問(wèn)題(其實(shí)這種聲音已經(jīng)不少,比如Python 3 正在毀滅 Python)。 但是,我還是啟動(dòng)了這個(gè)Python即時(shí)網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目。我用C++、Java和Javascript編寫爬蟲(chóng)相關(guān)程序超過(guò)10年,要追求高性能,非C++莫屬,同時(shí)有完善的標(biāo)準(zhǔn)體系,讓你和你的系統(tǒng)十分自信,只要充分測(cè)試,就能按照預(yù)期的方式運(yùn)行。在GooSeeker項(xiàng)目中,我們不斷向一個(gè)方向努力——“收割數(shù)據(jù)”,而且讓廣大用戶(不僅是專業(yè)的數(shù)據(jù)采集用戶)都能體驗(yàn)到收割互聯(lián)網(wǎng)數(shù)據(jù)的快感。“收割”的一個(gè)重要含義就是大批量?,F(xiàn)在,我要啟動(dòng)“即時(shí)網(wǎng)絡(luò)爬蟲(chóng)”,目的是要補(bǔ)充“收割”沒(méi)有覆蓋的場(chǎng)景,我看到的是:
- 在系統(tǒng)層面:“即時(shí)”代表快速部署數(shù)據(jù)應(yīng)用系統(tǒng)
- 在數(shù)據(jù)流層面:“即時(shí)”代表采集數(shù)據(jù)到數(shù)據(jù)使用是即時(shí)的,單個(gè)數(shù)據(jù)對(duì)象可以獨(dú)自全流程處理,不用等待一批存入數(shù)據(jù)庫(kù),然后從數(shù)據(jù)庫(kù)中拿出來(lái)用
- “即時(shí)”另一個(gè)含義就是網(wǎng)絡(luò)爬蟲(chóng)是一個(gè)嵌入模塊,跟整個(gè)信息處理系統(tǒng)集成在一起
一眾程序員都在玩Python網(wǎng)絡(luò)爬蟲(chóng),我擬定了一個(gè)計(jì)劃:建立一個(gè)模塊化更強(qiáng)的軟件部件,專門解決最耗費(fèi)精力的內(nèi)容提取問(wèn)題(有人總結(jié)說(shuō)大數(shù)據(jù)和數(shù)據(jù)分析整個(gè)鏈條上,數(shù)據(jù)準(zhǔn)備占了80%工作量,我們不妨延展一下,網(wǎng)絡(luò)數(shù)據(jù)抓取的工作量有80%是在為各種網(wǎng)站的各種數(shù)據(jù)結(jié)構(gòu)編寫抓取規(guī)則)。
我把他想象成一個(gè)小機(jī)器(見(jiàn)上圖),輸入的是原始網(wǎng)頁(yè),輸出的是提取出來(lái)的結(jié)構(gòu)化的內(nèi)容,這個(gè)小機(jī)器還有一個(gè)可替換部件:將輸入轉(zhuǎn)化成輸出結(jié)構(gòu)的一個(gè)指令塊,我們成為“提取器”,讓大家不再為調(diào)試正則表達(dá)式或者XPath而苦惱。
這是一個(gè)開(kāi)放的項(xiàng)目,兩年前啟動(dòng)了一個(gè)手機(jī)上的即時(shí)網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目,因?yàn)槭墙o某商業(yè)集團(tuán)開(kāi)發(fā)的,所以不便開(kāi)放,同樣的思想和方法將開(kāi)放到這個(gè)項(xiàng)目中,而且用當(dāng)前最熱的python來(lái)做,希望大家能共同參與。在執(zhí)行過(guò)程中,我們會(huì)開(kāi)放所有資料和成果、已經(jīng)遇到的坑。
近期做的實(shí)驗(yàn)是
python使用xslt提取網(wǎng)頁(yè)數(shù)據(jù)
Python爬蟲(chóng)使用Selenium+PhantomJS抓取Ajax和動(dòng)態(tài)HTML內(nèi)容
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python爬蟲(chóng)項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn)
- 33個(gè)Python爬蟲(chóng)項(xiàng)目實(shí)戰(zhàn)(推薦)
- 詳解python3 + Scrapy爬蟲(chóng)學(xué)習(xí)之創(chuàng)建項(xiàng)目
- Python網(wǎng)絡(luò)爬蟲(chóng)項(xiàng)目:內(nèi)容提取器的定義
- python小項(xiàng)目之五子棋游戲
- Python 項(xiàng)目轉(zhuǎn)化為so文件實(shí)例
- 解決python web項(xiàng)目意外關(guān)閉,但占用端口的問(wèn)題
- python+Django+pycharm+mysql 搭建首個(gè)web項(xiàng)目詳解
- 三個(gè)python爬蟲(chóng)項(xiàng)目實(shí)例代碼
相關(guān)文章
Python socket.error: [Errno 98] Address already in use的原因和解決
這篇文章主要介紹了Python socket.error: [Errno 98] Address already in use的原因和解決方法,在Python的socket編程中可能會(huì)經(jīng)常遇到這個(gè)問(wèn)題,需要的朋友可以參考下2014-08-08Python numpy有哪些常用數(shù)據(jù)類型
Numpy提供了兩種基本的對(duì)象:ndarray(N-dimensional Array Object)和 ufunc(Universal Function Object)。ndarray是存儲(chǔ)單一數(shù)據(jù)類型的多維數(shù)組,而ufunc則是能夠?qū)?shù)組進(jìn)行處理的函數(shù)2023-02-02Python DataFrame設(shè)置/更改列表字段/元素類型的方法
今天小編就為大家分享一篇Python DataFrame設(shè)置/更改列表字段/元素類型的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06如何在 Matplotlib 中更改繪圖背景的實(shí)現(xiàn)
這篇文章主要介紹了如何在 Matplotlib 中更改繪圖背景的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11跟老齊學(xué)Python之玩轉(zhuǎn)字符串(2)更新篇
本文是玩轉(zhuǎn)字符串的續(xù)篇,繼續(xù)對(duì)字符串的連接方法進(jìn)行介紹,以及字符串復(fù)制、字符串長(zhǎng)度、字符大小寫的轉(zhuǎn)換。非常不錯(cuò)的文章,希望對(duì)大家有所幫助2014-09-09通過(guò)python讀取txt文件和繪制柱形圖的實(shí)現(xiàn)代碼
這篇文章主要介紹了通過(guò)python讀取txt文件和繪制柱形圖的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03關(guān)于Python中幾個(gè)有趣的函數(shù)和推導(dǎo)式解析
這篇文章主要介紹了關(guān)于Python中幾個(gè)有趣的函數(shù)和推導(dǎo)式解析,推導(dǎo)式comprehensions,又稱解析式,是Python的一種獨(dú)有特性,推導(dǎo)式是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體,需要的朋友可以參考下2023-08-08python基礎(chǔ)教程之五種數(shù)據(jù)類型詳解
這篇文章主要介紹了python基礎(chǔ)教程之五種數(shù)據(jù)類型詳解的相關(guān)資料,這里對(duì)Python 的數(shù)據(jù)類型進(jìn)行了詳細(xì)介紹,需要的朋友可以參考下2017-01-01