乙隻健壯的爬蟲是怎樣煉成的

2021-08-20 22:45:40 字數 854 閱讀 3558

python新人,爬蟲玩的多了,漸漸的也有了自己的一些感悟,這裡不談具體操作,就寫了幾條自己的總結,每一條背後都是失敗的經驗教訓,當你把爬蟲「放心」的執行一晚上後,一大早起來發現程式早就異常死掉了,很多都沒爬到時,你就知道下面這些建議的意義了。

1.爬蟲必須增加容錯處理,不能因為乙個錯誤就終止整個程式;

2.重要的內容請時刻儲存為檔案,防止程式異常終止時,丟失所有已爬取資訊;

3.最好增加錯誤清單:當面對大量資料時,很難說一次就能成功爬取全部內容,當產生不期的錯誤時,將爬取失敗的此條鏈結儲存下來(檔案),以便於後面分析錯誤原因和再次爬取

4.最好能分步驟爬取,減少失敗風險,如第一步爬取所有鏈結,第二步再爬取所有鏈結內的內容;

5.爬取過程適當顯示關鍵點資訊(如成功訪問網頁後可顯示網頁title),便於知道每一小段程式執行狀態,就算出錯了也能知道錯在那一塊。

6.優秀的爬蟲多次爬取不會重複:「不會重複」是指不產生重複內容,也不重複爬取。最好的爬蟲是能夠在程式異常中斷後,再啟時可以從任何位置開始爬取;次之的爬蟲則是每次爬取時增加重複判斷功能,比如爬蟲爬取一部分後意外中斷或卡住,那麼再次爬取時可以讀取之前爬取的檔案列表,將這部分已爬取的從整體中去除(用python的差集運算),爬取未爬取的即可。

7.人道主義,爬取不可太頻繁占用**伺服器,也是為了避免自己被反爬限ip

乙隻爬蟲的產生

以下環境基於py2.7 爬蟲架構 url管理器 處理待爬url以及爬過的url,防止重複抓取以及死迴圈 網頁解析器 解析出想要的資料,以及捕捉新的url位址交給url管理器進行處理繼續抓取。過濾資料,拿到有價值的資料進行處理。資料的存放 python 的 set集合 可以防止資料的重複 需要長期儲存...

乙隻垂直的小爬蟲

這只垂直的小爬蟲,使用如下實現 實現的思路很簡單,我從主函式開始簡單敘述一下整個執行流程,第一步 收集需要爬取的url位址,容器我選擇的是concurrentlinkedqueue非阻塞佇列,它底層使用unsafe實現,要的就是它執行緒安全的特性 主函式 如下 static string url 新...

敏捷是怎樣煉成的

很早之前,就有了寫 的衝動,寫一本給程式設計師看的 寫一本能夠反映中國程式設計師生活的 曾幾何時,沉默寡言 喜歡獨自思考 甚至 木吶 成為了程式設計師的標籤。其實在每個程式設計師心中,除了對技術的痴迷,他們也熱愛生活。他們改變著技術,也同時被技術改變著。他們是一群普通的人,也是自己心中的英雄。之所以...