欢迎访问宙启技术站
智能推送

Python中的网络请求函数requests()使用方法

发布时间:2023-06-27 04:50:51

Python中的网络请求函数requests()是一种实用的模块,用于发送HTTP/1.1请求。requests()允许用户以类似web浏览器的方式进行通信,上传文件,发送表单数据,管理cookie等等。使用requests()的过程需要如下几步:

1. 安装requests

在开始使用requests()之前,需要先安装 requests 模块。可以通过 pip 命令安装,输入以下指令即可:

pip install requests

2.导入requests模块

安装成功后,在Python代码中需要导入requests模块,使用以下指令即可:

import requests

3.发出 GET 请求

使用requests()发送GET请求非常简单,只需设置请求的URL即可。使用以下指令即可:

url='https://www.baidu.com'
response=requests.get(url)
print(response.text)

以上代码中,我们先设置需要请求的地址,然后使用 requests.get() 方法发起一个 GET 请求,response.text就是返回的HTML内容,使用print()方法输出返回内容。如果请求的地址不唯一,那么可以通过params参数向URL中传递请求参数。例如:

url='https://www.baidu.com/s'
params={'wd':'Python'}
response=requests.get(url,params=params)
print(response.url)

以上代码中,我们向参数params中添加一个名为 “wd” 的参数。然后使用 requests.get() 方法发起一个 GET 请求,填入 URL 和 params 参数。注意,params 内应填写一个字典,字典中的键值对即为参数名和参数值。注意,这里的response.url使用中文搜索会将中文编码,所以url会变成指定编码方式的URL。如果要转换回中文,可以使用urllib.parse.unquote()方法。

4. 发出 POST 请求

使用 requests.post() 方法发起 POST 请求。POST 请求有时用于提交表单数据或上传文件。以下是一个用于上传文件的示例:

url = 'http://www.example.com/upload'
files = {'file': open('example.png', 'rb')}
response = requests.post(url, files=files)

其中,'examp.png'为文件名,'rb'表示以二进制打开文件。然后,使用 files 参数,向 URL 中上传文件。如果要提交表单数据,可以使用 data 参数,例如:

url = 'http://www.example.com/login'
data = {'username': 'example_user', 'password': 'example_password'}
response = requests.post(url, data=data)

以上代码中,我们向参数 data 内添加一个名为 “username” 和 “password”的字段。然后,使用 requests.post() 方法发起一个 post 请求,填入 URL 和 data 参数。注意,data 内应填写一个字典,字典中的键值对即为填写的参数名和参数值。

5. 自定义请求头

一些网站会对 requests 中的 User-Agent 标记为 “爬虫”,此时访问网站时可能会被拒绝。这个时候可以通过自定义请求头来规避这个问题。

url = 'http://www.example.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)

以上代码中,我们在请求头中添加了一个 User-Agent,这个 User-Agent 是一个来自于 Chrome 浏览器的字符串。注意,headers 内是一个字典,字典中的键即为请求头字段名,值为请求头字段值。

6. HTTP 认证

有一些网站会要求使用 HTTP 认证方式,才能够进行访问。这个时候可以使用 requests.get() 方法中的 auth 参数。

url = 'http://www.example.com'
auth = ('user', 'passwd')
response = requests.get(url, auth=auth)

以上代码中,我们向 auth 参数中输入了用户名和密码。然后,使用 requests.get() 方法发起一个 GET 请求,填入 URL 和 auth 参数。需要注意的是,auth 内是一个元组,元组中的第一个值为用户名,第二个值为密码。

7. 处理 cookies

requests 模块自动管理了 Cookies,如果需要设置某个 Cookie,可以把 Cookie 填入 cookies 参数。

url = 'http://www.example.com'
cookies = {'SessionID': '12345678901234567890'}
response = requests.get(url, cookies=cookies)

以上代码中,我们向 cookies 参数中添加了一个名为 “SessionID” 的 Cookie。然后,使用 requests.get() 方法发起一个 GET 请求,填入 URL 和 cookies 参数。注意,cookies 内应填写一个字典,字典中的的键值对即为 Cookie 名称和 Cookie 值。

总的来说,Python中的网络请求函数requests()的使用方法非常简单和灵活,可以方便地实现向服务器发送HTTP请求。在实际应用中,我们可以根据具体需求选择对应的请求方法、Header、Cookies和数据等信息,并使用requests()方法来发送请求,获取对应的返回结果。