【问题标题】:scrapy - get cookies from response/request headersscrapy - 从响应/请求标头中获取 cookie
【发布时间】:2017-10-03 20:29:42
【问题描述】:

我正在尝试使用这行代码从请求中获取 cookie,但得到了 [] 空结果

response.headers.getList('Set-Cookie')

还有这个

response.request.headers.get('Cookie')

当我open_in_browser 响应时,我检查了网络选项卡并看到 cookie 存在(见下图)

有什么想法吗?谢谢

【问题讨论】:

    标签: python session cookies scrapy


    【解决方案1】:

    response.headers.getlist("Set-Cookie") 为我工作(Scrapy 1.4.0)

    但是首先,如果您确实收到了这个 cookie,请检查 shell:

    scrapy shell
    fetch('your_url')
    response.headers.getlist("Set-Cookie")
    

    【讨论】:

    • 我签入了shell,它是空的[],但是当我查看响应时,我成功登录了。
    • 在你的设置文件中设置COOKIES_DEBUG = True,看看你是否收到任何cookies
    • 我在运行爬取时看不到任何与 cookie 相关的调试信息。
    • 这就是您在输出中看不到 cookie 的原因。可能是某些 JavaScript 发送了 cookie。在这种情况下,您应该使用 Selenium
    • 我试一试,我也尝试将用户代理设置为 mozilla,但没有运气。