目的
增量式爬蟲:在上一次爬取的基礎上繼續爬取資料,
通過增量式爬蟲,我們可以繼續爬取因故未完全爬完的資料,或**更新的資料.
去重那麼如何判斷我們是否爬過某條資料是關鍵,顯然,每次爬取判斷該資料是否存在是不可取的 , 所以這裡我們利用了redis資料庫集合自動去重的功能.向redis 庫中的集合裡放:
ps: redis資料庫效能極高 – 能讀的速度是110000次/s,寫的速度是81000次/s 。
既然要在我們的**中用redis,先連線:
from redis import redis
class bookspider(crawlspider):
conn = redis('localhost', 6379)
...def parse_item(self, response):
pass
然後是嘗試將我們爬取到的資料插入redis的集合
我們不可能將一條較長的資料存入redis,但是可以用為資料生成資料指紋,驗證資料是否以存入,這裡以md5訊息摘 要演算法為例:
import hashlib
code = hashlib.md5(data_name.encode('utf-8')).hexdigest()
這樣資料data_name就有了唯一的資料指紋code
def parse(self, response):
...code = hashlib.md5(data_name.encode('utf-8')).hexdigest()
ret = self.conn.sadd('book_link02', code)
if ret:
pass
#發出請求的邏輯
else:
pass
增量式爬蟲
增量式爬蟲 引言 當我們在瀏覽相關網頁的時候會發現,某些 定時會在原有網頁資料的基礎上更新一批資料,例如某電影 會實時更新一批最近熱門的電影。會根據作者創作的進度實時更新最新的章節資料等等。那麼,類似的情景,當我們在爬蟲的過程中遇到時,我們是不是需要定時更新程式以便能爬取到 中最近更新的資料呢?一....
Python爬蟲 增量式爬蟲 通用爬蟲 聚焦爬蟲
通用爬蟲 聚焦爬蟲 增量式爬蟲 通用爬蟲 和 聚焦爬蟲 之前的部落格有講解過了,本篇主要講解增量式爬蟲 適用於持續跟蹤 的資料爬取。例如三個月前,爬取了所有資料。更新了100條資料,此時爬取跟新的100條資料即可。指定起始url,基於crawlspider獲取頁碼url 基於rule請求獲取的頁碼u...
scrapy結合redis進行增量式爬蟲
增量式爬蟲 顧名思義就是以前爬取過的不在爬取,未爬取過的進行爬取。需求 爬取中的動作電影的標題和簡介 分析 指定url,建立工程,cd進入工程,建立爬蟲檔案,鏈結提取器提取頁碼鏈結,規則解析器進行規則制定,資料解析,持久化儲存,其實都是一樣的,重點在於怎麼只爬取更新的電影。核心 檢測電影詳情頁的ur...