scrapy中如何設(shè)置應(yīng)用cookies的方法(3種)
本人是python3.6
總的來說,scrapy框架中設(shè)置cookie有三種方式。
第一種:setting文件中設(shè)置cookie
當(dāng)COOKIES_ENABLED是注釋的時候scrapy默認(rèn)沒有開啟cookie
當(dāng)COOKIES_ENABLED沒有注釋設(shè)置為False的時候scrapy默認(rèn)使用了settings里面的cookie
當(dāng)COOKIES_ENABLED設(shè)置為True的時候scrapy就會把settings的cookie關(guān)掉,使用自定義cookie
所以當(dāng)我使用settings的cookie的時候,又把COOKIES_ENABLED設(shè)置為True,scrapy就會把settings的cookie關(guān)閉,
而且我也沒使用自定義cookie,導(dǎo)致整個請求根本沒有cookie,導(dǎo)致獲取頁面失敗。
總結(jié):
如果使用自定義cookie就把COOKIES_ENABLED設(shè)置為True
如果使用settings的cookie就把COOKIES_ENABLED設(shè)置為False
第二種:middlewares中設(shè)置cookie
在middlewares中的downloadermiddleware中的process_request中配置cookie,配置如下:
request.cookies={
'':'',
'':'',
}
等等。里面的cookie內(nèi)容要以鍵值對的形式存在。
第三種:在spider爬蟲主文件中,重寫start_request方法,在scrapy的Request函數(shù)的參數(shù)中傳遞cookies
# 重載start_requests方法
def start_requests(self):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"}
# 指定cookies
cookies = {
'uuid': '66a0f5e7546b4e068497.1542881406.1.0.0',
'_lxsdk_cuid': '1673ae5bfd3c8-0ab24c91d32ccc8-143d7240-144000-1673ae5bfd4c8',
'__mta': '222746148.1542881402495.1542881402495.1542881402495.1',
'ci': '20',
'rvct': '20%2C92%2C282%2C281%2C1',
'_lx_utm': 'utm_source%3DBaidu%26utm_medium%3Dorganic',
'_lxsdk_s': '1674f401e2a-d02-c7d-438%7C%7C35'}
# 再次請求到詳情頁,并且聲明回調(diào)函數(shù)callback,dont_filter=True 不進(jìn)行域名過濾,meta給回調(diào)函數(shù)傳遞數(shù)據(jù)
yield Request(detailUrl, headers=headers, cookies=cookies, callback=self.detail_parse, meta={'myItem': item}, dont_filter=True)
同時還要在setting中設(shè)置:
ROBOTSTXT_OBEY=False
到此這篇關(guān)于scrapy中如何設(shè)置應(yīng)用cookies的方法(3種)的文章就介紹到這了,更多相關(guān)scrapy設(shè)置cookies內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中高效抓取數(shù)據(jù)的實戰(zhàn)指南
在數(shù)據(jù)驅(qū)動的時代,網(wǎng)絡(luò)爬蟲已成為獲取信息的核心工具,本文將用通俗的語言,帶您掌握Python爬蟲結(jié)合代理IP抓取數(shù)據(jù)的全流程,希望對大家有一定的幫助2025-04-04
python ddt數(shù)據(jù)驅(qū)動最簡實例代碼
在本篇內(nèi)容里我們給大家分享了關(guān)于python ddt數(shù)據(jù)驅(qū)動最簡實例代碼以及相關(guān)知識點,需要的朋友們跟著學(xué)習(xí)下。2019-02-02
Python實現(xiàn)解析參數(shù)的三種方法詳解
這篇文章主要介紹了python解析參數(shù)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-07-07
Python函數(shù)式編程指南(二):從函數(shù)開始
這篇文章主要介紹了Python函數(shù)式編程指南(二):從函數(shù)開始,本文講解了定義一個函數(shù)、使用函數(shù)賦值、閉包、作為參數(shù)等內(nèi)容,需要的朋友可以參考下2015-06-06
Python實現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個元素的方法
這篇文章主要介紹了Python實現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個元素的方法,涉及Python字符串與數(shù)組的相關(guān)賦值、判斷操作技巧,需要的朋友可以參考下2017-09-09

