1樓:匿名使用者
從爬蟲必要的幾個基本需求來講:
1.抓取
python的urllib不一定去用,但是要學,如果還沒用過的話。
比較好的替代品有requests等第三方更人性化、成熟的庫,如果pyer不了解各種庫,那就白學了。
抓取最基本就是拉網頁回來。
如果深入做下去,會發現要面對不同的網頁要求,比如有認證的,不同檔案格式、編碼處理,各種奇怪的url合規化處理、重複抓取問題、cookies跟隨問題、多執行緒多程序抓取、多節點抓取、抓取排程、資源壓縮等一系列問題。
所以第一步就是拉網頁回來,慢慢會發現各種問題待優化。
2.儲存
抓回來一般會用一定策略存下來,而不是直接分析,個人覺得更好的架構應該是把分析和抓取分離,更加鬆散,每個環節出了問題能夠隔離另外乙個環節可能出現的問題,好排查也好更新釋出。
那麼存檔案系統、sqlornosql資料庫、記憶體資料庫,如何去存就是這個環節的重點。
可以選擇存檔案系統開始,然後以一定規則命名。
3.分析
對網頁進行文字分析,提取鏈結也好,提取正文也好,總之看的需求,但是一定要做的就是分析鏈結了。
可以用認為最快最優的辦法,比如正規表示式。
然後將分析後的結果應用與其他環節:)
4.展示
要是做了一堆事情,一點展示輸出都沒有,如何展現價值。
所以找到好的展示元件,去show出肌肉也是關鍵。
如果為了做個站去寫爬蟲,抑或要分析某個東西的資料,都不要忘了這個環節,更好地把結果展示出來給別人感受。
2樓:day忘不掉的痛
「入門」是良好的動機,但是可能作用緩慢。如果你手裡或者腦子裡有乙個專案,那麼實踐起來你會被目標驅動,而不會像學習模組一樣慢慢學習。
另外如果說知識體系裡的每乙個知識點是圖里的點,依賴關係是邊的話,那麼這個圖一定不是乙個有向無環圖。因為學習a的經驗可以幫助你學習b。因此,你不需要學習怎麼樣「入門」,因為這樣的「入門」點根本不存在!
你需要學習的是怎麼樣做乙個比較大的東西,在這個過程中,你會很快地學會需要學會的東西的。當然,你可以爭論說需要先懂python,不然怎麼學會python做爬蟲呢?但是事實上,你完全可以在做這個爬蟲的過程中學習python :
d看到前面很多答案都講的「術」——用什麼軟體怎麼爬,那我就講講「道」和「術」吧——爬蟲怎麼工作以及怎麼在python實現。
先長話短說summarize一下:
你需要學習
基本的爬蟲工作原理
基本的http抓取工具,scrapy
bloom filter: bloom filters by example
如果需要大規模網頁抓取,你需要學習分布式爬蟲的概念。其實沒那麼玄乎,你只要學會怎樣維護乙個所有集群機器能夠有效分享的分布式佇列就好。最簡單的實現是python-rq:
rq和scrapy的結合:darkrho/scrapy-redis · github
後續處理,網頁析取(grangier/python-goose · github),儲存(mongodb)
知乎python爬蟲如何入門學習
入門 是良好的動機,但是可能作用緩慢。如果你手 裡或者腦子裡有乙個專案,那麼實踐起來你會被目標驅動,而不會像學習模組一樣慢慢學習。另外如果說知識體系裡的每乙個知識點是圖里的點,依賴關係是邊的話,那麼這個圖一定不是乙個有向無環圖。因為學習a的經驗可以幫助你學習b。因此,你不需要學習怎麼樣 入門 因為這...
python爬蟲解析效率如何提公升
提高爬蟲效率的方法 協程。採用協程,讓多個爬蟲一起工作,可以大幅度提高效率。多程序。使用cpu的多個核,使用幾個核就能提高幾倍。多執行緒。將任務分成多個,併發 交替 的執行。分布式爬蟲。讓多個裝置去跑同乙個專案,效率也能大幅提公升。打包技術。可以將python檔案打包成可執行的exe檔案,讓其在後台...
如何自學Python爬蟲技術,花式賺錢
現在之所以有這麼多的小夥伴熱衷於爬蟲技術,無外乎是因為爬蟲可以幫我們做很多事情,比如搜尋引擎 採集資料 廣告過濾等,以python為例,python爬蟲可以用於資料分析,在資料抓取方面發揮巨大的作用。但是這並不意味著單純掌握一門python語言,就對爬蟲技術觸類旁通,要學習的知識和規範還有喜很多,包...