柚子快報(bào)激活碼778899分享:Scrapy 中 SPIDER
柚子快報(bào)激活碼778899分享:Scrapy 中 SPIDER
1. 下載中間件的方法
process_request(request,spider): 所有請(qǐng)求都會(huì)調(diào)用此方法process_response(request, response, spider): 這里的參數(shù)比上面的多了response,肯定是用來(lái)處理response的process_exception(request, exception, spider):處理異常from_crawler(cls, crawler):從settings.py獲取配置
2. 蜘蛛中間件的方法
process_spider_input(response, spider):所有請(qǐng)求都會(huì)調(diào)用這個(gè)方法process_spider_output(response, result, spider):spider解析完response之后調(diào)用該方法,result就是解析的結(jié)果(是一個(gè)可迭代對(duì)象),其中可能是items也可能是request對(duì)象process_spider_exception(response, exception, spider):處理異常process_start_requests(start_requests, spider):同process_spider_output,不過(guò)只處理spider中start_requests方法返回的結(jié)果from_crawler(cls, crawler):從settings.py獲取配置
3. 區(qū)別
下載中間件是連通引擎和下載器的,所以如果修改請(qǐng)求只會(huì)影響下載器返回的結(jié)果,如果修改響應(yīng)會(huì)影響 spider 處理;而 spider 中間件是連通引擎和 spider 的,如果修改請(qǐng)求則會(huì)影響整個(gè) scrapy 的請(qǐng)求,因?yàn)閟crapy的所有請(qǐng)求都來(lái)自于 spider,當(dāng)然包括調(diào)度器和下載器,如果修改響應(yīng),則只會(huì)影響蜘蛛的解析,因?yàn)轫憫?yīng)是由引擎?zhèn)鬟f給蜘蛛的。
4. 使用
spider 中間件:????????
????????-- 一般用于操作 spider 返回的request,比如記錄深度、丟棄非200狀態(tài)碼響應(yīng)、丟棄非指定域名請(qǐng)求等;
????????-- 蜘蛛中間件一般不需要自己編寫,使用內(nèi)置的幾個(gè)也足夠了;
下載中間件:
????????-- 下載中間件用于操作向互聯(lián)網(wǎng)發(fā)起請(qǐng)求的request和返回的response,比如修改請(qǐng)求頭、修改響應(yīng)、管理cookies、丟棄非200狀態(tài)碼響應(yīng)、丟棄非指定域名請(qǐng)求等;
柚子快報(bào)激活碼778899分享:Scrapy 中 SPIDER
參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。