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']}
添加回答
举报