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


猜你喜欢
- //采用对象冒充的方式实现js继承 function A(color) { this.Acolor = color; this.AshowC
- 用read_csv读数据遇到分隔符问题的两种解决方式import pandas as pd1.更改read_csv函数中的传参&ld
- 背景学习 Python 的话,仅掌握标准库是远不够的,有很多好用的第三方库我们也需要用到的,比如,由鼎鼎大名的 K 神开发的爬虫必不可少的
- map( )函数在算法题目里面经常出现,map( )会根据提供的函数对指定序列做映射,在写返回值等需要转换的时候比较常用。关于映射map,可
- 对于Python开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太慢,浪费时间。而且经常出现下载后安装出错问题。所以把PIP
- 最近写了一个网络验证登录的爬虫,需要发布为Rest服务,然后发现Flask是一个很好的Web框架,使用Python语言实现。1. 安装fla
- asp数字分页涵数参数说明:SQL: 查询语句,PageSizeN: 每页显示多少新闻记录classid: 栏目ID,PageCountS:
- 代码如下:import functoolsdef memoize(fn): print('start memoize&#
- Python脚本有一个毛病,当使用相对路径时,被另一个不同目录下的py文件中导入时,会报找不到对应文件的问题。感觉是当前工作目录变成了导入p
- 实验条件:从1张图像随机裁剪100张图像裁剪出图像的大小为 60 x 60IoU 大于等于 th=0.6 的裁剪框用红色标出,其它裁剪框用蓝
- 概述迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。延迟计算或惰性
- 前言编写函数或者类时,还可以为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。本次我将介绍如何使用Python模块uni
- pylint是一个不错的代码静态检查工具。将其配置在pycharm中,随时对代码进行分析,确保所有代码都符合pep8规范,以便于养成良好的习
- 前言上次写博客还在去年的8月底了,期间有了小宝,换工作等诸多事宜让我踩坑采的起飞,时隔4个月,逐渐找回状态。这篇的主题是python的第三方
- 我就废话不多说了,直接上代码吧!#!/usr/bin/env python# coding:UTF-8"""@
- 目录1.函数的介绍2.函数的定义和调用3.函数的参数4.参数的分类4.1.位置参数4.2.关键字参数4.3.缺省参数4.4.不定长参数1.不
- 具体代码如下所示:<?php//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。class Paren
- <em>`mark` set('index','best','hot')<
- 关于 游标 if,for 的例子 create or replace procedure peace_if is cursor var_c
- javascript版 俄罗斯方块(Russian box)小游戏,喜欢的朋友可以玩玩。对源代码感兴趣的朋友也可以研究一下。玩法介绍:可以输