request基本使用教程

article/2025/9/11 21:43:51

request使用

一.基本用法
1.准备工作安装request库,pip安装或再pycharm内安装。
2.实例引入renquest库中方法清晰简单,获取网页直接使用get方法就能直接实现:

代码:

import requests
response = requests.get('http://www.baidu.com/')
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.cookies)

运行结果:

<class 'requests.models.Response'>
200
<class 'str'>
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>

request中我们使用其他方法也很简单:

r = request.post('url/post')
r = request.put('url/put')
r = request.delete('url/delete')
r = request.head('url/get')
r = request.post('url/get')

**3.**GET请求
http中最常见的请求是get请求,对get请求进行详解。
首先是一个简单的get的请求,请求一个链接http://httpbin.org/get,该网站会判断如果客户端发起get请求的话,它会返回相应信息:
这是一个专门测试的网站 http://httpbin.org/

import requests
response = requests.get('http://httpbin.org/get')
print(response.text)

运行结果:

{"args": {}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6076af01-5222d2ca535f9b6039280a85"}, "origin": "18.167.102.111", "url": "http://httpbin.org/get"
}

可以看到我们发起了请求,返回的结果能看到我们的请求头,链接,ip等信息。
我们还可以向get请求中传入参数,构造一个附加额外信息的get请求。
直接构造:

r = request.get('http://httpbin.org/get?name=germey&age=22')

?后面接参数开始 &连接参数,显然这样太复杂因此我们引入params参数。
params参数示例:

import requests
data = {'name': 'germey','age': '22'
}
response = requests.get('http://httpbin.org/get',params=data)
print(response.text)

运行结果:

{"args": {"age": "22", "name": "germey"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6076b273-24b1eebd6542e66659560793"}, "origin": "18.167.102.111", "url": "http://httpbin.org/get?name=germey&age=22"
}

根据控制台返回的信息我们知道request已经自动为我们构造了一个url链接。我们还可以调用json方法,将字符串类型的json格式转换为字典类型的json。

print(response.json)

抓取网页
我们以知乎为例来抓取知乎的界面信息

import requests
import re
headers = {'cookie': '填入你的cookies','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
r = requests.get('https://www.zhihu.com/', headers=headers)
print(r.text)
print(r.status_code)

抓取二进制数据
我们抓取了一个知乎界面但其实我们知道它是一个html文档,如果我们向抓取二进制数据图片、视频、音频又应该怎么办呢。
我们以知乎的图标为例:
在这里插入图片描述

import requests
import re
headers = {'cookie': '填入你的cookies','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
r = requests.get('https://static.zhihu.com/heifetz/assets/apple-touch-icon-152.a53ae37b.png', headers=headers)
print(r.text)	# 直接打印会乱码 因为将二进制强制以字符格式输出
with open('zhihu.png','wb') as f :	# 写入本地可再与.py文件相同的地址查看图片f.write(r.content)

4.post请求
我们了解了最基本的get请求,post也是应该常见的请求方式,就是把相关信息返回。

import request
data = {'name': 'germey', 'age': '22'}
r = requests.post('http://httpbin.org/post',data=data)
print(r.text)

运行结果:

{"args": {"age": "22", "name": "germey"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.25.1", "X-Amzn-Trace-Id": "Root=1-6076f804-446c1b1d538e216f066e33ee"}, "origin": "111.17.194.60", "url": "http://httpbin.org/get?name=germey&age=22"
}

我们可以看到数据的提交。
5.响应

import requests
headers = {'cookie': 'url','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
r = requests.get('https://www.zhihu.com/', headers=headers)
print('状态码:',r.status_code)
print('请求头:',r.headers)
print('cookies:',r.cookies)

运行结果:

状态码: 200
请求头: {'Server': 'CLOUD ELB 1.0.0', 'Date': 'Wed, 14 Apr 2021 14:18:07 GMT', 'Content-Type': 'text/html; charset=utf-8', 'Vary': 'Accept-Encoding', 'set-cookie': 'tst=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; httponly, KLBRSID=ed2ad9934af8a1f80db52dcb08d13344|1618409886|1618409886; Path=/', 'content-security-policy': "default-src * blob:; img-src * data: blob: resource: t.captcha.qq.com cstaticdun.126.net necaptcha.nosdn.127.net; connect-src * wss: blob: resource:; frame-src 'self' *.zhihu.com mailto: tel: weixin: *.vzuu.com mo.m.taobao.com getpocket.com note.youdao.com safari-extension://com.evernote.safari.clipper-Q79WDW8YH9 zhihujs: captcha.guard.qcloud.com pos.baidu.com dup.baidustatic.com openapi.baidu.com wappass.baidu.com passport.baidu.com *.cme.qcloud.com vs-cdn.tencent-cloud.com t.captcha.qq.com c.dun.163.com; script-src 'self' blob: *.zhihu.com g.alicdn.com qzonestyle.gtimg.cn res.wx.qq.com open.mobile.qq.com 'unsafe-eval' unpkg.zhimg.com unicom.zhimg.com resource: captcha.gtimg.com captcha.guard.qcloud.com pagead2.googlesyndication.com cpro.baidustatic.com pos.baidu.com dup.baidustatic.com i.hao61.net 'nonce-395681d5-2009-4f24-ba9b-2f4de9719d15' hm.baidu.com zz.bdstatic.com b.bdstatic.com imgcache.qq.com vs-cdn.tencent-cloud.com ssl.captcha.qq.com t.captcha.qq.com cstaticdun.126.net c.dun.163.com ac.dun.163.com/ acstatic-dun.126.net; style-src 'self' 'unsafe-inline' *.zhihu.com unicom.zhimg.com resource: captcha.gtimg.com ssl.captcha.qq.com t.captcha.qq.com cstaticdun.126.net c.dun.163.com ac.dun.163.com/ acstatic-dun.126.net", 'x-frame-options': 'SAMEORIGIN', 'strict-transport-security': 'max-age=15552000; includeSubDomains', 'surrogate-control': 'no-store', 'cache-control': 'no-cache, no-store, must-revalidate, private, max-age=0', 'pragma': 'no-cache', 'expires': '0', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block', 'X-Backend-Response': '0.435', 'Referrer-Policy': 'no-referrer-when-downgrade', 'X-SecNG-Response': '0.43999981880188', 'X-UDID': 'AFDupPWGbBCPTjG_3TfIUhnlEgcac_LzB2M=', 'x-lb-timing': '0.441', 'x-idc-id': '2', 'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'X-NWS-LOG-UUID': '7093856299592433989', 'Connection': 'keep-alive', 'X-Cache-Lookup': 'Cache Miss', 'x-edge-timing': '0.462', 'x-cdn-provider': 'tencent'}
cookies: <RequestsCookieJar[<Cookie KLBRSID=ed2ad9934af8a1f80db52dcb08d13344|1618409886|1618409886 for www.zhihu.com/>]>

当然还有其他的各种响应信息不再列举。

											来源于《python3网络爬虫开发实战》笔记

http://chatgpt.dhexx.cn/article/4Tlu6UAp.shtml

相关文章

request方法

2019独角兽企业重金招聘Python工程师标准>>> 1request概述 request是Servlet.service()方法的一个参数&#xff0c;类型为javax.servlet.http.HttpServletRequest。在客户端发出每个请求时&#xff0c;服务器都会创建一个request对象&#xff0c;并把请求数据封装到…

【8086汇编】cmp指令和条件转移指令jxxx

1.定义 2.无符号比较影响标志位 3.有符号比较影响标志位 4.各种条件转移指令 5.cmp配合条件转移的使用

汇编cmp比较指令详解

刚刚看到了cmp指令&#xff0c;一开始有点晕。后来上网找了些资料&#xff0c;终于看明白了&#xff0c;为了方便初学者&#xff0c;我就简单写下我的思路吧。高手绕过&#xff0c;谢谢&#xff01; cmp(compare)指令进行比较两个操作数的大小 例:cmp oprd1,oprd2 为第一个操作…

汇编中的test和cmp指令

看过破解教程,都知道test,cmp是比较关键,来分析一下它们究竟是怎么比较 首先看看:状态寄存器(即标志寄存器) PSW(Program Flag)程序状态字(即标志)寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成, 如下所示: 条件码&#xff1a; ①OF(Overflow Flag)溢出标志,溢出…

条件执行指令 CMP

CMP可以比较两个数的关系&#xff0c;其本质就是一条减法指令&#xff0c;只是不会将运算结果保存到寄存器&#xff0c;因为对于CPU而言&#xff0c;比较两个数时只关心结果是false还是true 指令格式&#xff1a;CMP <第一操作寄存器> <第二操作数> 第一操作寄…

嵌入式cmp指令的判断标志位_AB PLC | Logix5000控制器状态标志

前言:Logix5000控制器没有状态文件,要访问状态信息,需要使用状态标志。另外,这些标志状态可以根据需要,将其用于程序编写,实现一些特定的功能. 状态标志 1. 状态标志关键字有:S:FS、S:N、S:Z、S:V、S:C、S:MINOR. 2. 可通过指令直接访问这些状态标志,它们并非标签,不能…

嵌入式cmp指令的判断标志位_刘帅嵌入式系统-当前程序状态寄存器(cpsr)

CPSR的格式如下图。SPSR格式与CPSR格式相同。 1、条件标志位 N(Negative)、Z(Zero)、C(Carry)及V(oVerflow)统称为条件标志位。大部分的ARM指令可以根据CPSR中的这些条件标志位选择性地执行。各条件标志位的具体含义如下。 N:当两个补码表示的有符号整数运算时,N=1表示运算的…

嵌入式cmp指令的判断标志位_ARM汇编指令集

ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。 一、跳转指令 跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。Ⅰ.使用专门的跳转指令; Ⅱ.直接…

实操汇编原理cmp指令 对比sub与cmp指令

mov ax, 5 mov bx, 5 cmp ax, bx这段指令是5-50&#xff0c;但是并不是在寄存器中a改值: 还没有给ax寄存器放值之前如上图&#xff0c;放入ax和bx之后如下图: 这个时候再step调试一步也就是走cmp ax,bx之后变成如下: 这里可以看到ax并没有发生改变&#xff0c;改变的是flag…

CMP指令(cmp指令的功能)

目前有哪些类型的CMP&#xff1f; 目前有共享一级Cache的CMP、共享二级Cache的CMP以及共享主存的CMP PLC里的cmp比较指令是不是停电保持&#xff1f; OQ0.0 /或 Q0.0常开触点 这个是Q0.0线圈的常开触点&#xff0c;作用就是停电自保持 CMP指令的指令详解 原发布者:weilei1201 c…

汇编语言 CMP指令

CMP(比较)指令执行从目的操作数中减去源操作数的隐含减法操作&#xff0c;并且不修改任何操作数。 指令格式&#xff1a; CMP 目的操作数, 源操作数标志位 当实际的减法发生时&#xff0c;CMP指令按照计算结果修改溢出、符号、零、进位、辅助进位和奇偶标志位。如果比较的是两…

时钟周期、机器周期、总线周期、指令周期的关系

一、时钟周期 时钟周期由主频决定&#xff0c;是最小的时间单位 也叫节拍、T周期、cpu时钟周期 二、机器周期 cpu完成一项基本操作所需最短时间&#xff0c;用了多个时钟周期 又叫cpu周期 例&#xff1a;取指周期&#xff08;含取指令和分析指令&#xff09;、间址周期、执行…

请说明指令周期、机器周期、时钟周期之间的关系。

一条指令周期包括若干个机器周期&#xff0c;一条机器周期又包括若干个时钟周期&#xff0c;时钟周期即振荡周期。 指令周期&#xff1a;取出一条指令并执行这条指令的时间。一般由若干个机器周期组成&#xff0c;是从取指令、分析指令到执行完所需的全部时间。 机器周期&…

时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器

时钟周期 时钟周期也称为振荡周期&#xff0c;定义为时钟脉冲的倒数(可以这样来理解&#xff0c;时钟周期就是单片机外接晶振的倒数&#xff0c;例如12M的晶振&#xff0c;它的时间周期就是1/12 us)&#xff0c;是计算机中最基本的、最小的时间单位。 在一个时钟周期内&#xf…

如何理解时钟周期及公式CPU执行时间 = CPU时钟周期数/主频

因为用OneNote制作的&#xff0c;公式复制不过来太麻烦&#xff0c;直接截图了。 下面看一下时钟周期的定义&#xff1a; CPU时钟周期&#xff1a;通常为节拍脉冲或T周期&#xff0c;即主频的倒数&#xff0c;它是CPU中最小的时间单位&#xff0c;每个动作至少需要一个时钟周期…

51/时钟周期、时钟频率、状态周期、机器周期

1.时钟频率是什么&#xff1f; 时钟&#xff1a;顾名思义&#xff0c;时钟以精确和固定的时间间隔&#xff0c;触发电信号&#xff0c;其信号被控制单元用于推进CPU的内部操作。而CPU执行 取指令–解码–执行的速度为时钟速度&#xff08;时钟频率&#xff09;。 在各类CPU当中…

时钟周期,机器周期,指令周期的区别

时钟周期 时钟周期也称为振荡周期&#xff0c;定义为时钟脉冲的倒数&#xff08;时钟周期就是单片机外接晶振的倒数&#xff0c;例如12M的晶振&#xff0c;它的时钟周期就是1/12us&#xff09;&#xff0c;是计算机中的最基本的、最小的时间单位。 在一个时钟周期内&#xff0c…

【嵌入式百科】003——时钟周期、指令周期、机器周期、总线周期

一、时钟周期 时钟周期也称为振荡周期&#xff0c;定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数&#xff0c;例如12M的晶振&#xff0c;它的时钟周期就是1/12us)&#xff0c;是计算机中的最基本的、最小的时间单位。在一个时钟周期内&#xff0c;CPU仅完成一个最基本…

IC基础知识(十一)时钟周期、状态周期、机器周期、指令周期和总线周期的定义及关系

目录 ​ ​1.时钟周期、振荡周期、节拍周期 2.状态周期 3.机器周期、CPU周期 4.指令周期 5.总线周期 总结 微信公众号 ​1.时钟周期、振荡周期、节拍周期 时钟周期又叫做振荡周期、节拍周期&#xff0c;定义为时钟晶振频率的倒数。时钟周期是计算机中最基本的、最小的时…

CPU时钟周期和时钟频率

就工作方式而言&#xff0c;CPU 分两种&#xff1a;同步 CPU 和异步 CPU。异步 CPU并不常见&#xff0c;用途广泛的是同步 CPU 。 既然是同步 CPU&#xff0c;当然就需要有一个同步机制&#xff0c;或者说要有个“主管”来维护同步状态&#xff0c;不然你做一样&#xff0c;我…