爬蟲是乙個比較容易上手的技術,也許花5分鐘看一篇文件就能爬取單個網頁上的資料。但對於大規模爬蟲,完全就是另一回事,並不是1*n這麼簡單,還會衍生出許多別的問題。
系統的大規模爬蟲流程如圖所示。
對於html結構固定,即同樣的字段處tag、id和class名稱都相同,採用beautifulsoup解析是一種簡單高效的方案,但有的**混亂,同樣的資料在不同頁面間html結構不同,這種情況下beautifulsoup就不太好使;如果資料本身格式固定,則用正規表示式更方便。比如以下的例子,這兩個都是深圳地區某個地方的經度,但乙個頁面的class是long,乙個頁面的class是longitude,根據class來選擇就沒辦法同時滿足2個,但只要注意到深圳地區的經度都是介於113到114之間的浮點數,就可以通過正規表示式"11[3-4].\d+"來使兩個都滿足。
一般而言,爬下來的原始資料都不是清潔的,所以在入庫前要先整理;由於大部分都是字串,所以主要也就是字串的處理方式了。
如果只是中小規模的爬蟲,可以把最後的爬蟲結果匯合成一張表,最後匯出成一張**以便後續使用;但對於表數量多、單張表容量大的大規模爬蟲,再匯出成一堆零散的表就不合適了,肯定還是要放在資料庫中,既方便儲存,也方便進一步整理。
對於大規模爬蟲,效率是乙個核心問題。單個網頁爬取可能很大,一旦網頁數量級大增之後,任務量也會大增,同時方式下的耗時也會大增。沒有公司或人個願意爬個幾十萬上百萬的頁面還要等幾個月,因此優化流程、提高效率是非常必要的。
大量的頁面往往不會是結構完全一樣,而且大量的訪問也總會出現該訪問成功卻訪問不成功的情況,這些都是非常常見的狀況,因此單一的邏輯無法應對各種不可預知的問題,反映在結果上就是爬取的資料往往會有錯漏的情況。
各種各樣的反爬機制也算是因垂斯聽,只有身經百戰,爬得多了,才能談笑風生,爬蟲水平不知道高到哪去了。有哪些有趣的反爬蟲手段?
原文:
大規模爬蟲流程總結
尊重原創,原文鏈結 爬蟲是乙個比較容易上手的技術,也許花5分鐘看一篇文件就能爬取單個網頁上的資料。但對於大規模爬蟲,完全就是另一回事,並不是1 n這麼簡單,還會衍生出許多別的問題。系統的大規模爬蟲流程如圖所示。api是 官方提供的資料介面,如果通過呼叫api採集資料,則相當於在 允許的範圍內採集,這...
大規模爬蟲流程總結
爬蟲是乙個比較容易上手的技術,也許花5分鐘看一篇文件就能爬取單個網頁上的資料。但對於大規模爬蟲,完全就是另一回事,並不是1 n這麼簡單,還會衍生出許多別的問題。系統的大規模爬蟲流程如圖所示。api是 官方提供的資料介面,如果通過呼叫api採集資料,則相當於在 允許的範圍內採集,這樣既不會有道德法律風...
大規模爬蟲的流程總結
爬蟲是乙個比較容易上手的技術,也許花5分鐘看一篇文件就能爬取單個網頁上的資料。但對於大規模爬蟲,完全就是另一回事,並不是1 n這麼簡單,還會衍生出許多別的問題。系統的大規模爬蟲流程如圖所示。api是 官方提供的資料介面,如果通過呼叫api採集資料,則相當於在 允許的範圍內採集,這樣既不會有道德法律風...