分享至
有一個爬新聞的程式,每天執行一次,但是會爬到同一篇新聞的情況,因為我是抓一整頁,所以該頁面會有昨天的新聞,這樣我該如何處理呢?
我有兩種想法:1.爬蟲完去跟資料庫比對有沒有重複的資料,沒有在存入資料庫。2.爬蟲完先存入資料庫,在下sql指令把重複資料刪除。
不知道哪一種比較好?
請大神們幫忙解惑
ps爬蟲使用python+mysql
已邀請的邦友 {{ invite_list.length }}/5
我選第1種做法如下:1.資料表加一個欄位 newskey,做為「判斷新聞是否重覆」的依據2.資料表加一個索引,索引欄位就只有一個 newskey,最重要的是要勾選「UNIQUE」屬性3.爬蟲爬到資料後,在寫入資料庫之前,多填入一個 newskey 欄位的值4.如果 newskey 沒重覆,就可成功寫入資料庫5.如果 newskey 重覆,資料庫就會因為「索引值重覆」而無法寫入資料庫
至於 newskey,最簡單的方法就是從 URL 裡面挑以下隨便舉幾個例子4334642444150516434983065383
或是你要把「整段 URL 當成 newskey」也可以
那我要怎麼跟資料庫的資料比對呢?
5.如果 newskey 重覆,資料庫就會因為「索引值重覆」而無法寫入資料庫
示意
IT邦幫忙