-
有必要詳細分析具體問題。 檢視您正在抓取哪些資料。
最好找到乙個可以區分為可重複性的字段值。 比如所有你知道的問題,每個問題都有對應的ID,房東的問題對應的ID是181730605611341844。 在抓取過程中,可以將所有已抓取的問題 ID 儲存在 set() 中,如果即將抓取的問題 ID 已經存在,則跳過它們,否則繼續。
不知道房東用的是什麼資料庫,在資料庫設計中,也可以新增一些約束作為約束,保證資料的唯一性。
-
在 Python 中,有幾種方法可以用於對爬網資料進行重複資料刪除,常用的方法如下:1使用集進行重複資料刪除:
已爬網的資料儲存在自動對元素進行重複資料刪除的集合中。 這可以通過以下方式實現: pythondata = [1, 2, 3, 4, 1, 2, 5]unique data = set(data) 2
使用字典進行重複資料刪除:使用爬網資料作為字典的鍵,值可以任意。由於字典鍵是唯一的,因此會自動刪除重複資料。
這可以通過以下方法實現: pythondata = [1, 2, 3, 4, 1, 2, 5]unique data = {}fromkeys(data)keys()`3.
使用列表推理進行重複資料刪除:使用列表推理迴圈訪問已爬網的資料,並將非重複資料新增到新列表。 這可以通過以下方式實現:
pythondata = [1, 2, 3, 4, 1, 2, 5]unique data = [x for i, x in enumerate(data) if x not in data[:i]] 這些方法可用於對已爬網資料進行重複資料刪除,具體取決於特定需求和資料大小。 八達通收集器是一款功能齊全、操作簡單、範圍廣泛的網際網絡資料收集器,可以幫助使用者快速獲取所需的資料,並提供豐富的教程和幫助文件,幫助使用者解決各種資料收集問題。
-
當網站有資料更新時,需要增量爬網,通常在以下集中情況下:
在情況 1 中,我們對這個特定頁面的內容進行雜湊處理,當然是為了刪除動態變化的部分,例如,有些頁面有驗證碼或日期,程式會定期執行它,並且在執行開始時,它會檢測該頁面的雜湊值是否與上次抓取相比發生了變化, 如果有變化,它將開始爬行。
在案例 2 中,我們將對頁麵條目的內容進行雜湊處理,並儲存頁面的 URL 雜湊值,如果頁麵條目的雜湊值發生變化,我們將得到新頁面 URL 的列表,這裡我們需要使用 URL 重複資料刪除,類似於重複資料刪除,並使用 Redis 集合型別進行處理。
Redis 集合型別不允許新增重複資料,新增重複資料時,返回 0 且無法新增。 我們將所有 URL 列表儲存在 Redis 集合中,當頁面條目發生變化時,我們將對頁面 URL 進行重複資料刪除,並僅抓取新新增的頁面。
有兩種常見的重複資料刪除方法:
其中,Bloom 過濾器是通過寫入檔案,多個程序需要增加同步性和互斥性,比較繁瑣,不建議在多執行緒程序時使用,而寫入檔案是磁碟IO操作,需要很長時間,可以再次累積到一定的寫入次數,或者在程式異常結束或退出時使用上下文管理器一次性寫入。
上下文管理器,在執行 main 函式之前執行 defenter在程式完成執行或異常退出時執行 defexit,上下文管理器也可用於計算程式執行的時間。
使用 Redis 集合重複資料刪除可以支援多執行緒和多程序。
利用redis採集的特性,在Redis中建立乙個集合,將資料的SHA1值新增到其中,新增成功則返回1,表示沒有重複資料,新增失敗則返回0,表示集合中已經有重複資料。
用: 步長:1建立 Redis 連線池 2重複檢查。
以下示例是乙個介面,並提供了乙個示例。
Python資料分析 你好親愛的,!<
1. 檢視資料表 Python 使用 shape 函式檢視資料表的維度,即行數和列數。 您可以使用 info 函式檢視資料表的整體資訊,使用 dtypes 函式返回資料格式。 Inull 是 Python 中乙個檢查 null 值的函式,可以檢視整個資料表,也可以檢視單列的 null 值,返回的結果是乙個邏輯值,包括 null 值和返回 false。 >>>More
小到垂直李子小麥資訊。
小麥是一種禾本科植物,是世界上分布最廣的糧食作物,播種面積在糧食作物中最高。 小麥在中國已有5000多年的種植歷史,目前主要產於河南、山東、江蘇、河北、湖北、安徽等省份。 小麥播種季節不同,分為春小麥和冬小麥; 按籽粒品質可分為硬麥和軟麥; 按顏色分,可是白小麥、紅小麥和花小麥原纖維皮。 >>>More