Python3中requests库详解
requests
是Python中一个常用的HTTP库,它可以方便地发送HTTP请求和处理HTTP响应。本攻略将详细介绍requests
库的使用方法,包括发送GET和POST请求、设置请求头、处理响应等内容。
安装requests库
在使用requests
库之前,需要先安装它。可以使用以下命令在终端中安装:
pip install requests
发送GET请求
使用requests
库发送GET请求非常简单,只需要调用requests.get()
函数并传入URL即可。以下是一个发送GET请求的示例:
import requests
url = 'https://www.baidu.com'
response = requests.get(url)
print(response.text)
在上面的代码中,我们使用requests.get()
函数发送一个GET请求到百度首页,并使用print()
函数输出响应内容。
发送POST请求
使用requests
库发送POST请求也非常简单,只需要调用requests.post()
函数并传入URL和请求参数即可。以下是一个发送POST请求的示例:
import requests
url = 'https://httpbin.org/post'
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post(url, data=data)
print(response.text)
在上面的代码中,我们使用requests.post()
函数发送一个POST请求到https://httpbin.org/post
,并传入请求参数data
。然后,我们使用print()
函数输出响应内容。
设置请求头
有时候,我们需要设置请求头来模拟浏览器发送请求。可以使用headers
参数来设置请求头。以下是一个设置请求头的示例:
import requests
url = 'https://www.baidu.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)
print(response.text)
在上面的代码中,我们使用headers
参数设置了请求头模拟了Chrome浏览器发送请求。
处理响应
requests
库可以方便地处理HTTP响应。以下是一些常用的响应处理方法:
response.text
:获取响应内容。response.status_code
:获取响应状态码。response.headers
:获取响应头。response.json()
:将响应内容解析为JSON格式。
以下是一个处理响应的示例:
import requests
url = 'https://httpbin.org/get'
response = requests.get(url)
print(response.status_code)
print(response.headers)
print(response.json())
在上面的代码中,我们使用response.status_code
获取响应状态码,使用response.headers
获取响应头,使用response.json()
将响应内容解析为JSON格式。
示例说明
以下是两个关于requests
库的示例说明:
示例1:使用requests
库下载图片
import requests
url = 'https://www.python.org/static/community_logos/python-logo-master-v3-TM.png'
response = requests.get(url)
with open('python-logo.png', 'wb') as f:
f.write(response.content)
在上面的代码中,我们使用requests.get()
函数下载Python官网的logo,并使用with open()
语句将响应内容写入文件中。
示例2:使用requests
库爬取网页内容
import requests
from bs4 import BeautifulSoup
url = 'httpswww.baidu.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)
在上面的代码中,我们使用requests.get()
函数获取百度首页的HTML内容,并使用BeautifulSoup
库解析HTML内容。然后,我们使用soup.title.string
获取HTML标题。