scrapy請求發送詳解


scrapy自動發送請求

  對start_urls列表中存儲的起始url進行過請求的發送並沒有通過手動實現,但是在parse函數中還是獲取到了響應數據,這是因為爬蟲文件中的爬蟲類繼承到了Spider父類中的start_requests(self)這個方法,該方法就可以對start_urls列表中的url發起請求:

1 def start_requests(self):
2         for u in self.start_urls:
3            yield scrapy.Request(url=u,callback=self.parse)

【注意】該方法默認的實現,是對起始的url發起get請求,如果想發起post請求,則需要子類重寫該方法。

1 def start_requests(self):
2         #請求的url
3         post_url = 'http://fanyi.baidu.com/sug'
4         # post請求參數
5         formdata = {
6             'kw': 'wolf',
7         }
8         # 發送post請求
9         yield scrapy.FormRequest(url=post_url, formdata=formdata, callback=self.parse)

手動對需要獲取的內容的url發起請求  

1 #手動發起get請求,url指定,callback指定回調解析函數(可自定義),meta可以傳遞參數,封裝在request中以便回調解析函數使用(request.item)
2 yield scrapy.Request(url=url,callback=self.parse1,meta={})
3 #手動發起post請求:formdata為請求參數,callback指定回調解析函數(可自定義),meta可以傳遞參數,封裝在request中
4 yield scrapy.FormRequest(url=url,formdata=formdata, callback=self.parse2,meta={})

 

在請求中,cookie的處理是scrapy自動封裝好的。

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM