欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于爬蟲(chóng)中scrapy.Request的更多參數(shù)用法

 更新時(shí)間:2022年07月15日 09:42:04   作者:黑馬藍(lán)汐  
這篇文章主要介紹了關(guān)于爬蟲(chóng)中scrapy.Request的更多參數(shù)用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

爬蟲(chóng)中scrapy.Request的更多參數(shù)

scrapy.Request的參數(shù)

scrapy.Request(url[,callback,method="GET",headers,body,cookies,meta,dont_filter=Fallse])

參數(shù)解釋:

中括號(hào)中的參數(shù)為可選參數(shù),可寫(xiě)可不寫(xiě)

  • callback:表示當(dāng)前的url響應(yīng)交給哪個(gè)函數(shù)去處理(默認(rèn)為parse函數(shù))
  • meta:實(shí)現(xiàn)數(shù)據(jù)在不同解析函數(shù)中傳遞,meta默認(rèn)帶有部分?jǐn)?shù)據(jù),比如下載延遲、請(qǐng)求深度等(用于解析方法之間的數(shù)據(jù)傳遞,常用在一條數(shù)據(jù)分散在多個(gè)不同結(jié)構(gòu)的頁(yè)面中的情況)
  • dont_filter:默認(rèn)為False,會(huì)過(guò)濾請(qǐng)求的url地址,即請(qǐng)求過(guò)的url地址不會(huì)繼續(xù)被請(qǐng)求,對(duì)需要重復(fù)請(qǐng)求的url地址可以把它設(shè)置為True,start_urls中的地址會(huì)被反復(fù)請(qǐng)求,否則程序不會(huì)啟動(dòng)
  • headers:接收一個(gè)字典,其中不包括cookies
  • cookies:接收一個(gè)字典,專門放置cookies
  • method:指定POST或GET請(qǐng)求
  • body:接收json字符串,為post的數(shù)據(jù)發(fā)送payload_post請(qǐng)求

meta參數(shù)

meta的作用:meta可以實(shí)現(xiàn)數(shù)據(jù)在不同的解析函數(shù)中的傳遞

在爬蟲(chóng)文件的parse方法中,增加一個(gè)函數(shù)parse_detail函數(shù)(用來(lái)解析另一個(gè)頁(yè)面):

def parse(self,response):
? ? ...
? ? yield scrapy.Request(detail_url, callback=self.parse_detail,meta={"item":item})
...

def parse_detail(self,response):
? ? #獲取之前傳入的item
? ? item = resposne.meta["item"]

就相當(dāng)于,把parse中解析的數(shù)據(jù)存到了meta字典中,對(duì)應(yīng)的key為item;而在另一個(gè)函數(shù)(parse_detail)中,通過(guò)meta字典中的key:item來(lái)提取parse中的數(shù)據(jù),從而實(shí)現(xiàn)不同頁(yè)面數(shù)據(jù)的拼接

注意:

  • meta參數(shù)是一個(gè)字典
  • meta字典中有一個(gè)固定的鍵proxy,表示代理ip

scrapy中Request中常用參數(shù)

  • url: 就是需要請(qǐng)求,并進(jìn)行下一步處理的url
  • callback: 指定該請(qǐng)求返回的Response,由那個(gè)函數(shù)來(lái)處理。
  • method: 一般不需要指定,使用默認(rèn)GET方法請(qǐng)求即可
  • headers: 請(qǐng)求時(shí),包含的頭文件。一般不需要。內(nèi)容一般如下:使用 urllib2 自己寫(xiě)過(guò)爬蟲(chóng)的肯定知道
Host: media.readthedocs.org
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/css,*/*;q=0.1
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://scrapy-chs.readthedocs.org/zh_CN/0.24/
Cookie: _ga=GA1.2.1612165614.1415584110;
Connection: keep-alive
If-Modified-Since: Mon, 25 Aug 2014 21:59:35 GMT
Cache-Control: max-age=0
  • meta: 比較常用,在不同的請(qǐng)求之間傳遞數(shù)據(jù)使用的。字典dict型
request_with_cookies = Request(url="http://www.example.com",
? ? ? ?cookies={'currency': 'USD', 'country': 'UY'},
? ? ? ?meta={'dont_merge_cookies': True})
  • encoding: 使用默認(rèn)的 'utf-8' 就行。

dont_filter: indicates that this request should not be filtered by the scheduler. 
     This is used when you want to perform an identical request multiple times, 
     to ignore the duplicates filter. Use it with care, or you will get into crawling loops. 
     Default to False.

  • errback: 指定錯(cuò)誤處理函數(shù)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論