引言:
當我們在瀏覽相關網頁的時候會發現,某些網站定時會在原有網頁數據的基礎上更新一批數據,例如某電影網站會實時更新一批最近熱門的電影。小說網站會根據作者創作的進度實時更新最新的章節數據等等。那么,類似的情景,當我們在爬蟲的過程中遇到時,我們是不是需要定時更新程序以便能爬取到網站中最近更新的數據呢?
一.增量式爬蟲
概念:通過爬蟲程序監測某網站數據更新的情況,以便可以爬取到該網站更新出的新數據。
如何進行增量式的爬取工作:
·在發送請求之前判斷這個URL是不是之前爬取過
·在解析內容后判斷這部分內容是不是之前爬取過
·寫入存儲介質時判斷內容是不是已經在介質中存在
分析:
不難發現,其實增量爬取的核心是去重,至于去重的操作在哪個步驟起作用,只能說各有利弊。在我看來,前兩種思路需要根據實際情況取一個(也可能都用)。第一種思路適合不斷有新頁面出現的網站,比如說小說的新章節,每天的最新新聞等等;第二種思路則適合頁面內容會更新的網站。第三個思路是相當于是最后的一道防線。這樣做可以最大程度上達到去重的目的。
去重方法
將爬取過程中產生的url進行存儲,存儲在redis的set中。當下次進行數據爬取時,首先對即將要發起的請求對應的url在存儲的url的set中做判斷,如果存在則不進行請求,否則才進行請求。
對爬取到的網頁內容進行唯一標識的制定,然后將該唯一表示存儲至redis的set中。當下次爬取到網頁數據的時候,在進行持久化存儲之前,首先可以先判斷該數據的唯一標識在redis的set中是否存在,在決定是否進行持久化存儲。
以上內容為大家介紹了python之增量式爬蟲是什么?希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/