Python3 requests 添加 cookie

原文链接: Python3 requests 添加 cookie

上一篇: win10 安装

下一篇: python3 flask 路由

我们平时使用requests获取网络内容很简单,几行代码搞定了,例如:

[python] view plain copy

  1. import requests
  2. res=requests.get("https://cloud.flyme.cn/browser/index.jsp")
  3. print res.content</span>


你没有看错,真的只有三行代码。但是简单归简单,问题还是不少的。

首先,这里的请求只是get方法,并且没有解决cookies的问题。

然后就是这里并没有解决乱码的问题。(乱码是python中的变态点)

其实,在requests的get方法中添加cookies的方法不难 可以这样子:

[python] view plain copy

  1. res=requests.get("https://cloud.flyme.cn/browser/index.jsp",cookies=cookies)


我们所面临的问题是,如何构造这里的cookies。

这里的cookies是一个字典格式的数据。

平时我们浏览网页的时候,在审查元素中可以查看到所访问网页的cookies内容,大都是这样子的:

[html] view plain copy

  1. sn_openNetBySms=%23810EBMA3TE53; sn_map=810EBMA3TE53; DSESSIONID=f1987887-3d1d-4a85-ad75-c6270e588290; JSESSIONID=; _uid=; _keyLogin=; _rmtk=; _uticket=ns_0393027c2f9f686e3499e8ebb8d1d622; _ckk=ns_397a592791064029bf1336eff1cf516e; ucuid=8a135520affa423584307f6e2c210f02; _domain=cloud.flyme.cn; _islogin=true; lang=zh_CN; JSESSIONID=1gmfzynp0ns6s1u6a92xkqgi6q

天那,这是人看的吗?不是。这是经过加密处理后的数据。同样,我们可以将加密后的数据传递到get方法的cookies参数中,服务器会自动将加密后的数据进行解密,再检查数据的正确性。

至于,如何查看所访问网页的cookies内容,可以使用浏览器的审查功能,F12或者右击审查(Chrome)打开。在network中查看链接的Headers内容。另外,也可以使用软件抓包查看,如Fiddler web Debugger。

这里假设获取到了cookies的内容,我们可以保存到本地TXT文件中(直接把cookies的内容粘贴进去即可),例如test.txt文件。

然后,

[python] view plain copy

  1. f=open(r'test.txt','r')#打开所保存的cookies内容文件
  2. cookies={}#初始化cookies字典变量
  3. for line in f.read().split(';'):   #按照字符:进行划分读取
  4. #其设置为1就会把字符串拆分成2份
  5. name,value=line.strip().split('=',1)
  6. cookies[name]=value  #为字典cookies添加内容

这时候我们将cookies添加到get方法中:

[python] view plain copy

  1. res=requests.get("https://cloud.flyme.cn/browser/index.jsp",cookies=cookies)


这时候获取到的res.content中就是我们将cookies信息添加到get中后访问网页所获取的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值