天天看點

pyspider最佳實踐

pyspider是好東西,非常穩定,很久很久以前架了一個,心冷了一段時間,但人家盡忠職守地持續運作,一直在抓取東西。

結合chrome,抓取代碼簡直不要太好寫,沒想到,最頭大的,還是它的排程。明明感覺沒問題的,就是不運作。在這個上面花的時間,比頁面解析的要多。是以,把近期的學習心得記錄下來:

第一、控制台的含義。rate/burst控制并發和速度基本不用管。progress現實近期調用次數可以參考一下。我用得最多的是左上角的Recent Active Tasks,可以檢視究竟運作了幾個爬蟲任務(對應self.crawl)

pyspider最佳實踐

第二、幾個重要控制設定。@every(minutes=24*60)是指的運作間隔。@config(age=300)指的頁面周期(機關秒),周期範圍内将不執行抓取。

第三、我的需求,是對一些固定頁面(已經存在庫中了)進行定時檢查,解析對外連結接,已經入庫的老連結忽略,新連結入庫。是以,不采用預設的start頁面進入總頁面,解析出一組分頁面連結,再分别調用分頁面的方式。而直接在start中啟動所有分頁面,分頁面設定有效期,定期自動重新擷取。而start每天重入一次,保證連結活動即可。如下:

pyspider最佳實踐

補充一下,如果設定了重新重新整理的間隔,那麼——這個間隔很難修改,哪怕把伺服器上pyspider關了,重開,還是原來的間隔。最後沒辦法,隻能建立一個項目,把代碼複制過去才ok!