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