關(guān)于項目
在大多數(shù)情況下,項目是您為一個網(wǎng)站編寫的一個腳本。
- 項目是獨立的,但您可以將另一個項目作為模塊導入 from projects import other_project
- 一期工程有5個狀態(tài):TODO,STOP,CHECKING,DEBUG和RUNNINGTODO - 創(chuàng)建一個腳本來編寫STOP- 您可以將項目標記為STOP您希望它停止(= =)。CHECKING- 修改正在運行的項目時,為防止不完整修改,項目狀態(tài)將CHECKING自動設(shè)置。DEBUG/ RUNNING- 這兩種狀態(tài)對蜘蛛沒有區(qū)別。但是將它標記為DEBUG第一次運行然后將其更改RUNNING為檢查后是很好的。
- 抓取速度被控制,rate并burst用令牌桶算法。rate - 一秒鐘內(nèi)有多少請求burst- 考慮到這種情況,rate/burst = 0.1/3這意味著蜘蛛每10秒抓一頁。所有任務(wù)都已完成,項目每分鐘檢查最后更新的項目。假設(shè)找到3個新項目,pyspider將“爆發(fā)”并抓取3個任務(wù)而不等待3 * 10秒。但是,第四項任務(wù)需要等待10秒。
- 要刪除項目,請設(shè)置group為delete和狀態(tài)STOP,等待24小時。
on_finished 打回來
您可以on_finished在項目中覆蓋方法,當task_queue變?yōu)?時將觸發(fā)該方法。
示例1:當您啟動項目以爬網(wǎng)包含100個頁面的網(wǎng)站時,on_finished將在成功爬網(wǎng)100個頁面或重試后失敗時觸發(fā)回調(diào)。
示例2:具有auto_recrawl任務(wù)的項目將永遠不會觸發(fā)on_finished回調(diào),因為當其中存在auto_recrawl任務(wù)時,時間隊列將永遠不會變?yōu)?。
示例3:具有@every修飾方法的項目將在on_finished每次新提交的任務(wù)完成時觸發(fā)回調(diào)。
更多建議: