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

2013-8-14大一大二暑期组队训练赛

1001 Time Limit : 5000/2000ms (Java/Other) Memory Limit : 65535/65535K (Java/Other) Total Submission(s) : 11 Accepted Submission(s) : 2 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description You are to write a module that will c…

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…

docker多个容器一起打包_docker如何将容器打包成镜像

可以使用docker commit命令来完成&#xff0c;docker commit可以从容器创建一个新的镜像。语法格式&#xff1a;docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]参数说明&#xff1b;-a :提交的镜像作者&#xff1b;-c :使用Dockerfile指令来创建镜像&#xff1b;-m :提…

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…

基础知识整理

1. 数据结构与算法 1.1 书籍 &#xff08;1&#xff09;算法导论 &#xff08;2&#xff09;编程之美 &#xff08;3&#xff09;编程珠玑 &#xff08;4&#xff09;数据结构&#xff08;C语言版&#xff09; &#xff08;5&#xff09;CareerCup.Cracking.the.Technical.Inte…

验票证明怎么打印_OFD电子发票如何查验、打开、打印?如何电子归档?

原标题&#xff1a;OFD电子发票如何查验、打开、打印&#xff1f;如何电子归档&#xff1f;电子发票是现代信息社会的产物&#xff0c;具有与纸质发票相同的凭证属性。它的诞生有利于进一步简化发票的流转、存储、查验&#xff0c;可以大幅降低纳税人领用、运输、存储和管理成本…

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

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

js闭包的使用

js闭包的使用 学习了&#xff1a;https://www.cnblogs.com/ZinCode/p/5551907.html 终于用上了闭包&#xff0c;还是有些生涩&#xff1b;好像柿子还没熟&#xff1b; function createList(list, divObject) {for (var i 0; i < list.length; i) {var monitor list[i];var…

使用WebClient请求WCF REST服务

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

python谁是卧底游戏流程图_虎牙小程序—谁是卧底 |明星互动游戏

主播连麦&#xff0c;观众互动每次都是唱歌跳舞聊天&#xff0c;你是否有为直播内容无吸引力而担心&#xff1f;别担心&#xff01;最经典的明星互动游戏“谁是卧底”终于来了&#xff0c;主播直播连麦就可以玩&#xff01;最重要的是&#xff01;&#xff01;&#xff01;观众…

Git的工作流程简介

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