2 回答

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
看起來他們正在使用not value
而不是更準(zhǔn)確的value is not None
.?打開一個(gè)問題是你唯一的長期資源,但是子類化 cookie 中間件是短期的,非 hacky 修復(fù)。
一個(gè) hacky 修復(fù)是利用這樣一個(gè)事實(shí),即他們?cè)趫?zhí)行此操作時(shí)沒有正確轉(zhuǎn)義 cookie 值,'; '.join()
因此您可以將 cookie 的值設(shè)置為合法的 cookie 指令(我選擇是HttpOnly
因?yàn)槟魂P(guān)心 JS),然后cookiejar
出現(xiàn)丟棄它,產(chǎn)生你關(guān)心的實(shí)際價(jià)值
>>> from scrapy.downloadermiddlewares.cookies import CookiesMiddleware
>>> from scrapy.http import Request
>>> cm = CookiesMiddleware(debug=True)
>>> req = Request(url='https://www.example.com', cookies={'AN': '; HttpOnly', 'alpha': 'beta'})
>>> cm.process_request(req, spider=None)
2020-08-01 15:08:58 [scrapy.downloadermiddlewares.cookies] DEBUG: Sending cookies to: <GET https://www.example.com>
Cookie: AN=; alpha=beta
>>> req.headers
{b'Cookie': [b'AN=; alpha=beta']}

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
目前的解決方案是使用舊版本的 scrapy(2.2.0 或更低版本),因?yàn)樽钚碌?2.3.0 是添加此 cookie 檢查的地方。
添加回答
舉報(bào)