fetch 自动加cookie_WEBUI自动化开发(第五章)

Requests是Python的非常常用的HTTP的库,主要用于网络爬虫和接口自动化测试。下面使用Requests最新版本,通过pip install requests安装。

pip install requestsCollecting requests  Downloading requests-2.25.0-py2.py3-none-any.whl (61 kB)     |████████████████████████████████| 61 kB 99 kB/s Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./venv/lib/python3.9/site-packages (from requests) (1.26.2)Collecting certifi>=2017.4.17  Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB)     |████████████████████████████████| 147 kB 6.7 kB/s Collecting chardet<4,>=3.0.2  Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)Collecting idna<3,>=2.5  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)     |████████████████████████████████| 58 kB 5.2 kB/s Installing collected packages: idna, chardet, certifi, requestsSuccessfully installed certifi-2020.12.5 chardet-3.0.4 idna-2.10 requests-2.25.0

查看本地安装版本

>>> import requests>>> requests.__version__'2.25.0'

我们来编写一个请求百度首页

分为带参数请求和不带参数请求的

  • https://www.baidu.com/

  • https://www.baidu.com/s?wd=suv%E6%B1%BD%E8%BD%A6(suv汽车)

Requests实现Get请求2个例子

ca63ef6eea8313eba73fdc79599a3c46.png

      url = "https://www.baidu.com/s?wd=Springboot"        payload = {}        headers = {            'Connection': 'keep-alive',            'Accept': '*/*',            'is_xhr': '1',            'X-Requested-With': 'XMLHttpRequest',            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',            'is_pbs': '%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0',            'Sec-Fetch-Site': 'same-origin',            'Sec-Fetch-Mode': 'cors',            'Sec-Fetch-Dest': 'empty',            'Referer': 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%B9%B3%E5%8F%B0&fenlei=256&oq=%25E5%25BE%25AE%25E4%25BF%25A1%25E5%2585%25AC%25E4%25BC%2597%25E5%25B9%25B3%25E5%258F%25B0&rsv_pq=dbe6f9780003d2c2&rsv_t=d1ddM3MDeEzN0o9%2BO4RzSnpDa8%2Bpu3avFyNpR4YZC3hodmvp3wBjm9N5k0s&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_btype=t&inputT=5425&rsv_sug3=5&rsv_sug1=4&rsv_sug7=100&rsv_sug4=12430&rsv_sug=1',            'Accept-Language': 'en-US,en;q=0.9',            'Cookie': 'BIDUPSID=54C0826149B7299E360B557AB5A497A6; PSTM=1602209293; BAIDUID=54C0826149B7299ED5ED2B69EA7EAE01:FG=1; BD_UPN=12314753; MCITY=-%3A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; sug=3; sugstore=1; ORIGIN=0; bdime=0; BDSFRCVID=DUCOJeC62ZuoAecrzNDIhH2qlmwUBOTTH6aotFZDEgCmWtkRMW_mEG0P8f8g0KAbGdi6ogKK3mOTHR8F_2uxOjjg8UtVJeC6EG0Ptf8g0f5; H_BDCLCKID_SF=tbCq_IKafCP3HJ84q465bPPJqxbXqM3P02OZ0l8KtfchDpjN-n50Xx0PM-AHb47LbaTG2MbmWIQHDPbDWxOpbUtD3pOWQfrUXKj4KKJxfnLWeIJoLt5nb-cBhUJiB5JLBan7bDnIXKohJh7FM4tW3J0ZyxomtfQxtNRJ0DnjtnLhbRO4-TFKjj5LjUK; BAIDUID_BFESS=54C0826149B7299ED5ED2B69EA7EAE01:FG=1; __yjsv5_shitong=1.0_7_98da4595c8bb2361eb889d3a64fd8fc8e3d5_300_1607497358701_112.5.168.233_fb665284; delPer=0; BD_CK_SAM=1; BD_HOME=1; PSINO=6; H_PS_PSSID=1466_33225_33058_33259_33236_33099_33101_26350_33199_33144_33148; H_PS_645EC=d1ddM3MDeEzN0o9%2BO4RzSnpDa8%2Bpu3avFyNpR4YZC3hodmvp3wBjm9N5k0s; BA_HECTOR=2k0k2l2l84al2k8llc1ft394d0q; COOKIE_SESSION=82578_0_8_4_2_2_0_0_8_2_1_0_0_0_0_0_1607423260_0_1607574668%7C9%2326670_117_1607417652%7C9; Hm_lvt_aec699bb6442ba076c8981c6dc490771=1606455659,1606789969,1607417005,1607574727; Hm_lpvt_aec699bb6442ba076c8981c6dc490771=1607574727; BDSVRTM=0; WWW_ST=1607574827950'        }        response = requests.request("GET", url, headers=headers, data=payload)        print(response.headers)

请求的打印的Header

{'Bdpagetype': '3', 'Bdqid': '0x8e8822890000da2a', 'Cache-Control': 'private', 'Ckpacknum': '2', 'Ckrndstr': '90000da2a', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html;charset=utf-8', 'Date': 'Thu, 10 Dec 2020 05:39:06 GMT', 'Server': 'BWS/1.1', 'Set-Cookie': 'delPer=0; path=/; domain=.baidu.com, BD_CK_SAM=1;path=/, PSINO=6; domain=.baidu.com; path=/,  BDSVRTM=19; path=/,  H_PS_PSSID=1466_33225_33058_33259_33236_33099_33101_26350_33199_33144_33149; path=/; domain=.baidu.com', 'Strict-Transport-Security': 'max-age=172800', 'Traceid': '1607578746025443994610270496922024335914',   'Vary': 'Accept-Encoding',   'X-Ua-Compatible': 'IE=Edge,chrome=1',   'Transfer-Encoding': 'chunked'}

Requests 复杂的方法

复杂的请求方式通常带有请求头、代理IP、证书验证和Cookies等功能。Requests将这一系列复杂的请求做了简化,将这些功能在发送请求中以参数的形式传递并作用到请求中。

1.添加请求头

请求头以字典的形式表示,然后在发送请求中设置headers参数。请求中设置请求头相当于把程序伪装成浏览器来向网站发送请求,主要设置User-Agent和Referer的内容,因为很多网站反爬虫都是根据这两个内容来判断当前请求是否合法。

        url = "https://www.baidu.com/s?wd=Springboot"        payload = {}        headers = {            'Connection': 'keep-alive',            'X-Requested-With': 'XMLHttpRequest',            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',        }        response = requests.request("GET", url, headers=headers, data=payload)        print(response.text)

ceae3a60c5e027168284e013f75fbbca.png

2.使用代理IP

使用方法与请求头的使用方法一致,只需设置proxies参数即可。proxies以字典的形式表示,字典的key主要有http和https,这是两种不同的HTTP协议,字典的value是一个可访问的IP地址,免费的代理IP可以网上搜索,不过很多都是无法使用。代理IP的实现代码如下:

3.证书验证

网站中出现证书不合法的时候,只需设置verify=False,等于关闭证书验证。参数verify的默认值为True。如果需要设置证书文件,那么可将参数verify值设为证书所在的路径。

4.超时设置

发送请求后,由于网络、服务器等因素,从请求到响应会有一个时间差。如果不想程序等待时间过长或者延长等待时间,可以设定参数timeout的等待秒数,超过这个等待时间就会停止等待响应并引发一个异常。使用代码如下:

    requests.get("https://www.baidu.com/", timeout=1)

    requests.post("https://www.baidu.com/", timeout=1)

5.使用Cookies

在请求过程中使用Cookies也只需设置参数Cookies即可。Cookies的作用是标识用户身份,在Requests中以字典或RequestsCookieJar对象作为参数。获取方式主要从浏览器读取或通过程序运行产生。下面的例子进一步讲解如何使用Cookies。

      print(r.utils.dict_from_cookiejar(response.cookies))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

结构体对齐计算方式

目录法则一&#xff1a;结构体成员的偏移量必须是成员大小的整数倍(数组除外)法则二&#xff1a;结构体大小必须是所有成员大小的整数倍(数组、结构体除外)带数组的结构体大小计算带结构体的结构体大小计算带联合体的结构体大小计算pragma pack(4)向4对齐对齐方式确实很浪费空间…

【计算机算法设计与分析】——5.4最优二分检索树

&#xff08;n为结点个数&#xff09; 为成本差额 转载于:https://www.cnblogs.com/chihaoyuIsnotHere/p/9815498.html

dataframe常用操作_Pandas | Dataframe的merge操作,像数据库一样尽情join

点击上方蓝字&#xff0c;关注并星标&#xff0c;和我一起学技术。今天是pandas数据处理第8篇文章&#xff0c;我们一起来聊聊dataframe的合并。常见的数据合并操作主要有两种&#xff0c;第一种是我们新生成了新的特征&#xff0c;想要把它和旧的特征合并在一起。第二种是我们…

2.空间配置器

SGI 特殊的空间配置器 std::alloc 一般而言&#xff0c;我们习惯的C内存配置操作和释放操作是这样的 class Foo{…..} Foo* pf new Foo; delete pf; new包含两阶段操作 &#xff08;1&#xff09;调用 ::operator new 配置内存 &#xff08;2&#xff09;调用 Foo::Foo() …

Github的简单使用(网页版)

目录Git和GithubGithub基础概念注册Github账号创建仓库及文件新建仓库新建文件文件的编辑和删除编辑或修改文件删除文件文件的上传文件的查找及下载文件的查找文件的下载IssuesFork开源项目贡献流程Git和Github 什么是Git Git是一个免费、开源的版本控制软件 什么是版本控制…

常用到的正则表达式

2019独角兽企业重金招聘Python工程师标准>>> 常用的正则表达式 1、匹配只含有英文字母和阿拉伯数字 ^[a-zA-Z0-9-]$ 2、匹配电子邮件地址 ^[_a-z0-9-](\.[_a-z0-9-])*[a-z0-9-](\.[a-z0-9-])*$ 3、匹配中文字符 [\u4e00-\u9fa5] 4、匹配国内座机电话号码 (\d{3}-|\d…

CSDN绑定GitHub账号

目录1.点击自己头像进入个人中心2.点击账号设置&#xff0c;选择绑定三方账号3.选择GitHub绑定绑定成功&#xff0c;主页获取勋章1.点击自己头像进入个人中心 2.点击账号设置&#xff0c;选择绑定三方账号 3.选择GitHub绑定 绑定成功&#xff0c;主页获取勋章

My97DatePicker在asp.net项目中的使用

1、去官网下载 My97DatePicker 包 http://www.my97.net/ 2、比如实现如下图所示功能 2.1 先把下载来的包添加到解决方案 2.2 然后在页面引用css文件和js文件 <link href"My97DatePicker/skin/WdatePicker.css" rel"stylesheet" type"text/css"…

机械秒表的使用方法_让console.log()不再是你的唯一选项js日志输出6种方法

几乎所有的javascript开发者最常使用的日志打印调试api都是console.log(),其实还有很多的选项供我们选择&#xff0c;笔者下面就为大家一一介绍.一、console.table()console.table()是我非常建议大家去使用的方法&#xff0c;它可以接受JSON或数组并以表格格式打印&#xff0c;…

Git的安装(附安装包)

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

【10.20校内测试】【小模拟】【无向图建树判奇偶环】【树上差分】

Solution 和后面两道题难度差距太大了吧&#xff01;&#xff01; 显然就只是个小模拟&#xff0c;注意判0就行了。 Code #include<bits/stdc.h> using namespace std;char s[100005];int main() {freopen("expression.in", "r", stdin);freopen(&qu…

微信(QQ)截图时,无法保留鼠标右键菜单选项内容

问题描述 按下右键后弹出菜单&#xff0c;再按下QQ截图热键"Ctrl&#xff0b;Alt&#xff0b;A"&#xff08;微信"Ctrl&#xff0b;A"&#xff09;时&#xff0c;却发现菜单不见了。 微信的解决方法 先按下"Alt"键不放&#xff0c;再按住&quo…

使用WebClient请求WCF REST服务

2019独角兽企业重金招聘Python工程师标准>>> 接上篇”WCF实现REST服务“&#xff0c;服务端有了&#xff0c;我们看看客户端怎么访问&#xff0c;由于JS跨域的限制&#xff0c;这里通过WebClient做在后台代理来访问&#xff0c;话不多说&#xff0c;直接上代码。 1…

Git的工作流程简介

目录Git的工作区域Git的基本流程1.将工作区的代码添加到暂存区2.将暂存区的文件提交到本地仓库3.将暂存区的文件提交到远程仓库Git的工作区域 Git的基本流程 图形化方式操作 命令行模式&#xff08;Linux系统常用&#xff09;操作 1.将工作区的代码添加到暂存区 查看文件状态使…

git常用配置(指令)

1、配置用户名和邮箱 (1) 指令设置 $ git config --global user.name "username" $ git config --global user.email johndoeexample.com (2) 修改配置文件.gitconfig 2、配置ssh key免密登录 (1) 生成密钥 $ ssh-keygen -t rsa -C 1046407517qq.com (2) 在github添加…

PG git pull

2019独角兽企业重金招聘Python工程师标准>>> remote: Counting objects: 347, done. remote: Compressing objects: 100% (159/159), done. remote: Total 159 (delta 136), reused 0 (delta 0) Receiving objects: 100% (159/159), 23.16 KiB, done. Resolving del…

c51单片机led奇数偶数亮_两STM32单片机串口通讯实验

一、实验思路连接两个STM32单片机的串口引脚&#xff0c;单片机A进行发送&#xff0c;单片机B进行接收。单片机B根据接收到单片机A的指令来点亮或熄灭板载LED灯&#xff0c;通过实验现象来验证是否通讯成功。二、实验器材两套STM32F103C8T6单片机开发板、ST-Link下载器、杜邦线…

Git本地仓库文件的创建、修改和删除

目录基本信息设置1.设置用户名2.设置用户名邮箱Git仓库操作介绍1.创建一个新的文件夹2.在文件内初始化git仓库&#xff08;创建git仓库&#xff09;3.向仓库中添加文件1.创建一个文件2.将文件添加到暂存区3.将暂存区添加到仓库4.修改仓库文件1.修改文件2.然后把文件添加到暂存区…

作业4

一.题目&#xff1a;求一个二维整数数组中最大子数组的和二.设计思想&#xff1a;假如有一个i行j列的二维数组&#xff0c;可以有正有负通过两个子函数实现(一.)通过上次的一位数组求最大值&#xff0c;可以先求出每一行最大连续子数组的和(二.)记下上下边界元素的下标(三.)每一…

C++的高效从何而来

2019独角兽企业重金招聘Python工程师标准>>> 前一段时间&#xff0c;实验室的一哥们突然跑过来跟我说&#xff0c;“我自己写了个C的快速排序&#xff0c;排了一个10000000个int的数组&#xff0c;貌似比C库中是qsort算法要快&#xff0c;咋回事&#xff1f;C的STL中…