標籤:概念 oom 表單 pytho 機器 lte 跟蹤 rap 源碼
“入門”是良好的動機,但是可能作用緩慢。如果你手裡或者腦子裡有一個項目,那麼實踐起來你會被目標驅動,而不會像學習模組一樣慢慢學習。
另外如果說知識體系裡的每一個知識點是圖裡的點,依賴關係是邊的話,那麼這個圖一定不是一個有向非循環圖。因為學習A的經驗可以協助你學習B。因此,你不需要學習怎麼樣“入門”,因為這樣的“入門”點根本不存在!你需要學習的是怎麼樣做一個比較大的東西,在這個過程中,你會很快地學會需要學會的東西的。當然,你可以爭論說需要先懂python,不然怎麼學會python做爬蟲呢?但是事實上,你完全可以在做這個爬蟲的過程中學習ython :D
看到前面很多答案都講的“術”——用什麼軟體怎麼爬,那我就講講“道”和“術”吧——爬蟲怎麼工作以及怎麼在python實現。先長話短說summarize一下:
你需要學習
1.基本的爬蟲工作原理
2.基本的http抓取工具,scrapy
3.Bloom Filter: Bloom Filters by Example
4.如果需要大規模網頁抓取,你需要學習分布式爬蟲的概念。其實沒那麼玄乎,你只要學會怎樣維護一個所有叢集機器能夠有效分享的分布式隊列就好。最簡單的實現是python-rq: https://github.com/nvie/rq
5.rq和Scrapy的結合:darkrho/scrapy-redis · GitHub
6.後續處理,網頁析取(grangier/python-goose · GitHub),儲存(Mongodb)
那麼源碼時代小編來總結一下:
從爬蟲基本要求來看:
1.抓取:抓取最基本就是拉網頁回來,所以第一步就是拉網頁回來,慢慢會發現各種問題待最佳化;
2.儲存:抓回來一般會用一定策略存下來,可以選擇存檔案系統開始,然後以一定規則命名。
3.分析:對網頁進行文本分析,可以用認為最快最優的辦法,比如Regex;
4.展示:要是做了一堆事情,一點展示輸出都沒有,如何展現價值。
另外小編在這裡推薦一本書《用Python寫網路爬蟲》,裡面主要講述的內容有:通過跟蹤連結來爬取網站;使用lxml從頁面中抽取資料;構建線程爬蟲來並行爬取頁面;將下載的內容進行緩衝,以降低頻寬消耗;解析依賴於JavaScript的網站;與表單和會話進行互動;解決受保護頁面的驗證碼問題;對AJAX調用進行逆向工程;使用Scrapy建立進階爬蟲。
風裡雨裡,在源碼時代python爬蟲課程等你。
怎樣入門python爬蟲?