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

2014-01-17 10:12:47 +08:00
 pc10201
用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?
13452 次点击
所在节点    Python
4 条回复
pc10201
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
2014-01-17 17:24:05 +08:00
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
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
2018-05-28 12:44:21 +08:00
@pyufftj 这是登陆豆瓣吧,为啥我按照这样做就不行那。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/97347

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX