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
pc10201
V2EX  ›  Python

如果将抓包软件的cookies转换成requests库可用的cookies?

  •  
  •   pc10201 · 2014-01-17 10:12:47 +08:00 · 13454 次点击
    这是一个创建于 3970 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用fiddler或HttpAnalyzerStdV7

    抓到的cookies是这种类型的

    _msaId=4fa42d7f_61_07402027; __utma=196373631.647841865.1386929518.1386929518.1386929518.1; __utmz=196373631.1386929518.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); omniID=1386929519037_b573_6ed4_1e59_8215ca179005; AuthorizationCookie=d114cf6b-a8d3-4af4-869b-742773394143; s_cc=true; s_sq=%5B%5BB%5D%5D

    而requests库的cookies需要的字典类型的

    如何将上面的cookies转换成requests库可用的cookies?
    4 条回复    2018-05-28 12:44:21 +08:00
    pc10201
        1
    pc10201  
    OP
       2014-01-17 10:28:46 +08:00
    自己搞定了,代码如下,希望大家指正
    #coding=utf-8
    import requests
    url = 'http://www.baidu.com'
    f=open(r'cookies.txt','r')
    cookies={}
    for line in f.read().split(';'):
    #其设置为1就会把字符串拆分成2份
    name,value=line.strip().split('=',1)
    cookies[name]=value
    r = requests.get(url, cookies=cookies)
    Jat001
        2
    Jat001  
       2014-01-17 17:24:05 +08:00   ❤️ 1
    requests 自带 session。
    http://docs.python-requests.org/en/latest/user/advanced/#session-objects

    如果想更改某个 cookie。
    def update_cookie(cookiejar, cookie):
    _cookies = requests.cookies
    _cookies.remove_cookie_by_name(cookiejar, 'cookie_name')
    cookiejar.set_cookie(_cookies.create_cookie('cookie_name', cookie, **{'domain': '.example.com'}))
    pyufftj
        3
    pyufftj  
       2016-07-26 13:03:36 +08:00
    非常感谢你的回答,帮了我大忙了,今天忙了一上午,发现和你一样的问题,我是用 fidder 来爬包的。
    我一开始也是按你的这种类型填写的
    _msaId=4fa42d7f_61_07402027; __utma=196373631.647841865.1386929518.1386929518.1386929518.1; __utmz=196373631.1386929518.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); omniID=1386929519037_b573_6ed4_1e59_8215ca179005; AuthorizationCookie=d114cf6b-a8d3-4af4-869b-742773394143; s_cc=true; s_sq=%5B%5BB%5D%5D

    这样连不上,用你的方法可以啦!
    soho176
        4
    soho176  
       2018-05-28 12:44:21 +08:00
    @pyufftj 这是登陆豆瓣吧,为啥我按照这样做就不行那。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2807 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:43 · PVG 20:43 · LAX 04:43 · JFK 07:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.