2 回答

TA貢獻1893條經驗 獲得超10個贊
看起來他們正在使用not value
而不是更準確的value is not None
.?打開一個問題是你唯一的長期資源,但是子類化 cookie 中間件是短期的,非 hacky 修復。
一個 hacky 修復是利用這樣一個事實,即他們在執行此操作時沒有正確轉義 cookie 值,'; '.join()
因此您可以將 cookie 的值設置為合法的 cookie 指令(我選擇是HttpOnly
因為您不關心 JS),然后cookiejar
出現丟棄它,產生你關心的實際價值
>>> 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']}
添加回答
舉報