場景:爬取某**的部分商品。
這裡至少需要爬取2種資源,一種是商品列表,一種是商品資訊。 所以要設計1條佇列,儲存商品資訊url。
爬蟲1定期爬前n個列表頁 url,把裡面的商品資訊url爬下來,儲存到佇列裡。
爬蟲2定期從佇列中抽出商品資訊url,爬取商品資訊,爬完後把該url移出佇列。
所以呢,簡單來說,只要有2張表就行了,一張儲存佇列資訊,一張儲存商品資訊。
為了避免每次都把所有商品爬一遍,就要在適當的時候停止。 爬列表頁的時候,一般是設定只爬前 n 頁。 爬商品資訊url的時候,一般是先檢查這個商品是否存在,不存在就入隊,存在的話,就表示接下來都是舊資料了,可以停止了。
當然有種情況,就是有些舊的商品,會被人為地置頂,或者排到前面來。
這時候就要設定乙個值 m,每次最多爬前 m 個,多了不爬。
有新商品進來,直接插入即可,如果是舊商品,那要不要更新資料庫裡的內容呢? 一般來說是可以更新的,但有種情況例外,就是你的資料庫會有人去編輯的情況。
如果你的資料庫有專人編輯,那麼最好不要更新舊商品,因為會覆蓋掉編輯的內容。並且,資料表要採用軟刪除的方式,避免前面的人剛刪除了資料,你的爬蟲又把資料寫進去了。
資料庫的一些簡單操作
今天做了一些資料庫的操作 於是便記錄下來 1 判斷當前要插入的資料中的某乙個字段是否和資料庫的相對應的字段是否重複 cursor cursor getcontext getcontentresolver query 表名,null,查詢的字段 new string,null 然後進行判斷cursor...
資料庫設計的一些感想
有關主鍵與外來鍵 一般而言,乙個實體不能既無主鍵又無外來鍵。在e r 圖中 處於葉子部位的實體 可以定義主鍵,也可以不定義主鍵 因為它無子孫 但必須要有外來鍵 因為它有父親 主鍵作用是保持唯一性 外來鍵的作用是資料庫的完整性,說白了 就是乙個表某一列的內容 來自於另乙個表的 一列,不能隨便刪除外來鍵...
關於資料庫的一些簡單認知
有很多人在爭論第一款關係型資料庫是由ibm的db2,也有人說第一款關係型資料庫是由 甲骨文的oracle。第一款關係型資料庫理論是由ibm公司的system r團隊提出的,但事實上第乙個確實是 oracle公司做出來的。資料庫顧名思義就是存放資料的,就 美團滴滴等等都有大量的資料進行儲存,如果 做乙...