關(guān)于爬蟲(chóng)中scrapy.Request的更多參數(shù)用法
爬蟲(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è)字典,其中不包括cookiescookies
:接收一個(gè)字典,專門放置cookiesmethod
:指定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)行下一步處理的urlcallback
: 指定該請(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)文章
python實(shí)現(xiàn)MySQL?數(shù)據(jù)庫(kù)表格創(chuàng)建?數(shù)據(jù)插入及獲取插入ID操作教程
這篇文章主要為大家介紹了python實(shí)現(xiàn)MySQL?數(shù)據(jù)庫(kù)表格創(chuàng)建?數(shù)據(jù)插入及獲取插入ID操作教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python關(guān)鍵字之global與nonlocal
這篇文章主要為大家詳細(xì)介紹了Python關(guān)鍵字之global與nonlocal,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03tensorflow卷積神經(jīng)Inception?V3網(wǎng)絡(luò)結(jié)構(gòu)代碼解析
這篇文章主要為大家介紹了卷積神經(jīng)Inception?V3網(wǎng)絡(luò)結(jié)構(gòu)代碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Flask的圖形化管理界面搭建框架Flask-Admin的使用教程
Flask-Admin是一個(gè)為Python的Flask框架服務(wù)的微型框架,可以像Django-Admin那樣為用戶生成Model層面的數(shù)據(jù)管理界面,接下來(lái)就一起來(lái)看一下Flask的圖形化管理界面搭建框架Flask-Admin的使用教程2016-06-06python實(shí)現(xiàn)將漢字轉(zhuǎn)換成漢語(yǔ)拼音的庫(kù)
這篇文章主要介紹了python實(shí)現(xiàn)將漢字轉(zhuǎn)換成漢語(yǔ)拼音的庫(kù),涉及Python調(diào)用word.data字段實(shí)現(xiàn)將漢字轉(zhuǎn)換成拼音的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換 問(wèn)題
這篇文章主要介紹了Python3中內(nèi)置類型bytes和str用法及byte和string之間各種編碼轉(zhuǎn)換問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09關(guān)于python 讀取csv最快的Datatable的用法,你都學(xué)會(huì)了嗎
大家都知道Datatable與眾不同就是快,還有一點(diǎn)大家需要注意使用Datatable庫(kù)需要python3.6及以上版本,接下來(lái)通過(guò)本文給大家介紹了python 讀取csv最快的Datatable的用法,需要的朋友可以參考下2021-10-10python中用ctypes模擬點(diǎn)擊的實(shí)例講解
在本篇文章里小編給各位整理了一篇關(guān)于python中用ctypes模擬點(diǎn)擊的實(shí)例講解內(nèi)容,需要的朋友可以參考學(xué)習(xí)下。2020-11-11Python對(duì)數(shù)據(jù)庫(kù)操作
本文給大家介紹Windows、Linux下安裝MySQL-python,及安裝過(guò)程中常遇到的問(wèn)題,該如何解決,非常具有參考借鑒價(jià)值,特此分享供大家參考2016-03-03