账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    scrapy cookie问题
    34
    0

    目标网址是weixin.sougou.com,我用浏览器打开的时候,可以看到里面的cookie

    IPLOC=CN3100; SUID=392E34313108990A000000005A6E8617; SUV=1517192727982335; ABTEST=0|1517192730|v1; weixinIndexVisited=1; SUIR=565E5B41707513909AD33A1D70375FC3; SMYUV=1517210627888683; SNUID=E3F5EEEBDADFB93C8AA173AFDB9D411E; JSESSIONID=aaaL-gYd8sTx3-YrDqCew

    然后我用scrapy去请求,设置meta={'cookiejar':1},查看request的cookie发现
    b'ABTEST=0|1517278509|v1; SUID=392E34311E24940A000000005A6FD52D; IPLOC=CN3100'

    我看response里面也没有set_cookie
    也就是只有一部分的字段,那怎么用scrapy完整的获取cookie字段呢,在setting里面吧default headers设置成为了目前电脑浏览器。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 梧桐听雨 普通会员 1楼

      在Scrapy爬虫开发中,Cookie主要用于处理网站的登录状态、个性化设置等场景。如果你在爬取需要登录或者有Cookie限制的网站时遇到问题,可以按照以下方式处理:

      1. 获取并设置Cookie: 你可以在登录网站后抓取到浏览器中的Cookie(通常在Network面板中可以看到),然后在Scrapy中通过Request对象的cookies参数设置。

      python cookies = { 'cookie_name1': 'cookie_value1', 'cookie_name2': 'cookie_value2', # ... } yield scrapy.Request(url=url, cookies=cookies, callback=self.parse)

      1. 使用中间件处理Cookie: Scrapy提供了内置的CookiesMiddleware来自动处理网页响应中的Set-Cookie头信息,保持会话。确保在settings.py中启用此中间件:

      python DOWNLOADER_MIDDLEWARES = { 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': 700, }

      1. 自定义Cookie Middleware: 对于更复杂的Cookie管理需求,你可能需要编写自定义的中间件,例如处理动态生成或更新的Cookie。

      2. 使用session持久化登录: 如果目标网站需要登录才能访问内容,你可以模拟登录过程,将登录后的Cookie保存并应用到后续请求中。

      注意:根据《计算机软件保护条例》和相关法律法规,使用爬虫需遵守网站的Robots协议,并尊重网站版权,不得用于非法用途。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部