python编程之requests在网络请求中添加cookies参数方法详解

作者:Winterto1990 时间:2023-07-03 00:48:23 

哎,好久没有学习爬虫了,现在想要重新拾起来。发现之前学习爬虫有些粗糙,竟然连requests中添加cookies都没有掌握,惭愧。废话不宜多,直接上内容。

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


import requests
res=requests.get("https://cloud.flyme.cn/browser/index.jsp")
print res.content

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

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

然后就是这里并没有解决乱码的问题。(乱码是python中的变态点)其实,在requests的get方法中添加cookies的方法不难 可以这样子:


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

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

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

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


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文件。
然后,


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

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


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

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

来源:http://blog.csdn.net/winterto1990/article/details/51213029

标签:python,requests,cookies
0
投稿

猜你喜欢

  • pyinstaller将含有多个py文件的python程序做成exe

    2021-03-04 21:02:22
  • Go语言实现AOI区域视野管理流程详解

    2023-06-20 03:21:51
  • 认识MySQL数据库对服务器端光标的限制

    2009-03-25 17:35:00
  • 代码讲解Python对Windows服务进行监控

    2023-10-07 10:59:09
  • python通过wxPython打开一个音频文件并播放的方法

    2021-10-20 16:15:08
  • Oracle AS关键字 提示错误

    2011-04-18 12:42:00
  • sql server 2005因架构无法删除用户错误15138的解决方法

    2024-01-22 11:43:21
  • 伪静态下不能使用FCKeditor的解决方法

    2023-02-03 06:54:20
  • Python网络编程之Python编写TCP协议程序的步骤

    2022-12-25 17:18:55
  • ASP脚本循环语句

    2009-02-19 13:34:00
  • Python实现向服务器请求压缩数据及解压缩数据的方法示例

    2023-03-14 05:02:08
  • Vue实现文本编译详情

    2024-06-05 09:20:06
  • Python Pandas数据合并pd.merge用法详解

    2022-07-18 22:15:47
  • 网页制作了解什么是CSS hack?

    2007-10-21 08:52:00
  • 分享vim python缩进等一些配置

    2022-09-28 00:12:55
  • python使用suds调用webservice接口的方法

    2022-12-22 06:44:18
  • 5款非常棒的Python工具

    2023-03-22 15:58:03
  • js和jquery判断数据类型的4种方法总结

    2023-08-25 08:49:18
  • Python 通过截图匹配原图中的位置(opencv)实例

    2021-10-06 02:04:44
  • Python中属性和描述符的正确使用

    2021-08-14 04:26:45
  • asp之家 网络编程 m.aspxhome.com