requests库的使用(一篇就够了)

本文详细介绍了Python的requests库的使用,包括安装、基本用法、GET和POST请求、设置请求头、处理响应、爬取二进制数据、文件上传、Cookies管理、会话维持、SSL证书验证、代理设置、超时设定、身份验证以及Prepared Request。requests库简化了网络请求操作,如GET和POST请求,同时支持文件上传、Cookies处理和各种网络配置,是Python网络编程的强大工具。
摘要由CSDN通过智能技术生成

urllib库使用繁琐,比如处理网页验证和Cookies时,需要编写Opener和Handler来处理。为了更加方便的实现这些操作,就有了更为强大的requests库。

request库的安装

requests属于第三方库,Python不内置,因此需要我们手动安装。

1、相关链接

  • GitHub:https://github.com/psf/requests

  • PyPI:https://pypi.org/project/requests/

  • 官方文档:https://docs.python-requests.org/en/latest/

  • 中文文档:https://docs.python-requests.org/zh_CN/latest/user/quickstart.html

2、通过pip安装

无论是Windows、Linux还是Mac,都可以通过pip这个包管理工具来安装requests。在命令行界面运行如下命令,即可完成requests库的安装:

pip3 install requests

除了通过pip安装,还可以通过wheel或源码安装,这里不进行叙述。

3、验证安装

在命令行可通过导入import库来测试requests是否安装成功。
导入库成功,说明requests安装成功。

基本用法

下面案例使用requests库中的get( )方法发送了一个get请求。

#导入requests库
import requests
#发送一个get请求并得到响应
r = requests.get('https://www.baidu.com')
#查看响应对象的类型
print(type(r))
#查看响应状态码
print(r.status_code)
#查看响应内容的类型
print(type(r.text))
#查看响应的内容
print(r.text)
#查看cookies
print(r.cookies)

这里调用了get( )方法实现urlopen( )相同的操作,结果返回一个响应对象,然后分别输出响应对象类型、状态码、响应体内容的类型、 响应体的内容、Cookies。通过运行结果可以得知:响应对象的类型是requests.models.Response,响应体内容的类型是str,Cookies 的类型是RequestCookieJar。如果要发送其他类型的请求直接调用其对应的方法即可:

r = requests.post('https://www.baidu.com')
r = requests.put('https://www.baidu.com')
r = requests.delete('https://www.baidu.com')
r = requests.head('https://www.baidu.com')
r = requests.options('https://www.baidu.com')

GET请求

构建一个GET请求,请求http://httpbin.org/get(该网站会判断如果客户端发起的是GET请求的话,它返回相应的信息)

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


1)如果要添加请求参数,比如添加两个请求参数,其中name值是germey,age值是20。虽然可以写成如下形式:

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

但较好的写法是下面这种写法:

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


通过运行结果可以看出,请求的URL最终被构造成了“http://httpbin.org/getname=germey&age=20”。

2)网页的返回内容的类型是str类型的,如果它符合JSON格式,则可以使用json( )方法将其转换为字典类型,以方便解析。

import requests
r = requests.get('http://httpbin.org/get')
#str类型
print(type(r.text))
#返回响应内容的字典形式
print(r.json())
#dict类型
print(type(r.json()))

但需要注意,如果返回的内容不是JSON格式,调用json( )方法便会出现错误,抛出json.decoder.JSONDecodeError异常。

POST请求

1)发送POST请求。

import requests
r = requests.post('http://httpbin.org/post')
print(r.text)

2)发送带有请求参数的POST请求。

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


在POST请求方法中,form部分就是请求参数。

设置请求头

import requests
headers = {
  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0',
  'my-test':'Hello'
}
r = requests.get('http://httpbin.org/get',headers=headers)
print(r.text)

响应

1)发送请求后,返回一个响应,它具有很多属性,通过它的属性来获取状态码、响应头、Cookies、响应内容等。如下:

import requests
r =
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值