您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么對scrapy頭部進行修改,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
被Scrapy自動添加的頭部
在沒有任何配置的情況下,scrapy會對請求默認加上一些頭部信息
Scrapy會通過配置文件中的USER_AGENT配置,自動為頭部添加User-Agent,這條配置會被任何包含User-Agent的配置覆蓋
當請求經過下載器后,會被自動添加頭部Accept-Encoding: gzip,deflate, 會被任意包含Accept-Encoding的頭部配置覆蓋
配置settings.py文件中默認的頭部
#DEFAULT_REQUEST_HEADERS = { # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', # 'Accept-Language': 'en' #}
當這個配置屬于注釋狀態時,頭部被設置為Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8與
Accept-Language: en,可以通過取消注釋修改或增刪其中的內容
優先級
可以在爬蟲中通過custom_settings設置配置僅在當前爬蟲生效
class XXXSpider(scrapy.Spider): ... custom_settings = { DEFAULT_REQUEST_HEADERS = {...} } ....
在Request中設置頭部
當給引擎返回Request時,可以為他配置頭部
... def parse(self): headers = { ... } yield scrapy.Request(url, headers=headers)
優先級
在中間件中配置
當Request請求通過下載中間件發往下載器時,可以通過下載中間件配置頭部
class XXXDownloaderMiddleware def process_request(self, request, spider): request.headers["key"] = value return None
還需要在配置文件中啟用下載中間價
DOWNLOADER_MIDDLEWARES = { 'project.middlewares.XXXDownloaderMiddleware': 543, }
優先級
referer中間件
當存在多次請求時,referer中間件會自動幫Request的頭部中的referer加上上一次請求的url
優先級
關閉referer中間件
在配置文件中添加REFERER_ENABLED=False即可關閉
優先級分析
Scrapy自動添加的User-Agent與Accept-Encoding < 配置文件中的默認配置DEFAULT_REQUEST_HEADERS < Request中修改的header < 中間件中添加的header < referer中間件添加的referer
關于怎么對scrapy頭部進行修改就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。