V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Oane
V2EX  ›  Python

Python requests cookie 获取问题

  •  
  •   Oane · 2019-02-26 17:21:28 +08:00 · 4197 次点击
    这是一个创建于 1857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    爬虫需要登陆的问题 我先用 requests get 请求 想先拿到 cookie 放到 header 中 但是 get 过后 response.cookies 和 chrome 里面的 cookie 不同 少了很多 想问一下怎么拿到这些 cookie

    7 条回复    2019-03-06 17:48:10 +08:00
    morefreeze
        1
    morefreeze  
       2019-02-26 18:22:31 +08:00
    一般这种问题还是 chrome 里有些隐秘请求 /操作导致的,requests 只发了一个请求,但你 chrome 打开这个网页可能执行 js,或者发了别的请求,都说不好,仔细排查模拟吧
    Leigg
        2
    Leigg  
       2019-02-26 21:34:13 +08:00 via iPhone
    有时候浏览器会发送自己的 cookie,不同浏览器还不一样,不用理会,可以先尝试登录。再就是注意是不是登录分成多个请求分步获取参数最后提交的。
    wutiaojian
        3
    wutiaojian  
       2019-02-26 22:57:18 +08:00
    requests.session() 了解下
    bakabie
        4
    bakabie  
       2019-02-26 23:56:40 +08:00
    1. 如楼上所说使用 requests.session()
    2.有些请求会让服务器设置 set-cookies,请在抓包的 时候分析看看是否有这些请求,然后使用 1 的 session 访问
    3.有些属性是 chrome 自带。
    Alfred1993
        5
    Alfred1993  
       2019-02-28 02:50:16 +08:00 via iPhone
    印象中好像直接复制 chrome 登陆后的 cookie 也能请求
    Oane
        6
    Oane  
    OP
       2019-02-28 09:54:51 +08:00
    @Alfred1993 的确可以登录 但是如果想要完全自动化 就必须获取 cookie 了
    ranlele
        7
    ranlele  
       2019-03-06 17:48:10 +08:00
    post 登陆页面获取的 cookie,比使用浏览器登陆的 cookie 要少很多,带着 cookie 访问其他页面。但是依然登陆成功了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5357 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 01:29 · PVG 09:29 · LAX 18:29 · JFK 21:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.