【Python - 类库 - requests】(01)使用“requests“库的基本介绍...
requests
是一个常用的 Python 库,用于发送 HTTP 请求并获取响应结果。它比 urllib
模块更简洁,提供了更友好的接口。使用 requests
库可以方便地向网站发送 GET、POST、PUT、DELETE 等请求,并处理响应内容。
基本用法
首先,需要导入 requests
模块:
import requests
然后,可以使用 requests
提供的方法向指定 URL 发送 HTTP 请求。例如,发送一个 GET 请求:
response = requests.get('https://www.runoob.com/')
print(response.text) # 输出网页内容
每次调用 requests
请求之后,会返回一个 response
对象,该对象包含了具体的响应信息,如状态码、响应头、响应内容等。
常用方法
requests
库提供了多种方法来发送不同类型的 HTTP 请求:
requests.get(url, params, args)
: 发送 GET 请求requests.post(url, data, json, args)
: 发送 POST 请求requests.put(url, data, args)
: 发送 PUT 请求requests.delete(url, args)
: 发送 DELETE 请求requests.head(url, args)
: 发送 HEAD 请求requests.patch(url, data, args)
: 发送 PATCH 请求requests.request(method, url, args)
: 发送指定方法的请求
例如,发送一个 POST 请求并附加参数:
url = 'https://www.runoob.com/try/ajax/demo_post2.php'
data = {'fname': 'RUNOOB', 'lname': 'Boy'}
response = requests.post(url, data=data)
print(response.text) # 输出响应内容
设置请求头和查询参数
可以在请求中附加额外的参数,例如请求头、查询参数等:
headers = {"User-Agent": "Mozilla/5.0"}
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get("https://www.runoob.com/", params=params, headers=headers)
print(response.status_code) # 查看响应状态码
print(response.url) # 查看完整URL地址
print(response.text) # 查看响应内容
处理响应
response
对象包含了丰富的响应信息,可以通过以下属性和方法获取:
response.status_code
: 获取响应状态码response.headers
: 获取响应头response.content
: 获取响应内容(字节)response.text
: 获取响应内容(字符串)response.json()
: 获取 JSON 格式的响应内容response.cookies
: 获取响应的 cookiesresponse.elapsed
: 获取响应时间response.history
: 获取请求历史
例如,获取 JSON 响应内容:
response = requests.get('https://www.runoob.com/try/ajax/json_demo.json')
print(response.json()) # 输出 JSON 内容
错误处理
可以使用 response.raise_for_status()
方法来检查请求是否成功,如果发生错误,会抛出 HTTPError
异常:
try:response = requests.get('https://www.runoob.com/404')response.raise_for_status()
except requests.exceptions.HTTPError as err:print(f"HTTP error occurred: {err}")
通过以上方法,requests
库可以方便地处理各种 HTTP 请求和响应,适用于爬虫、API 调用等场景。