Python数据分析工具(一):Requests的用法
Python的Requests库是一个非常流行的HTTP库,用于发送各种HTTP请求。它简化了与Web服务的交互,提供了易于使用的API。以下是一些基本的Requests用法示例:
安装Requests
首先,确保你已经安装了Requests库。如果还没有安装,可以通过pip安装:
pip install requests
发送GET请求
import requests
url = 'http://httpbin.org/get'
response = requests.get(url)
# 访问响应内容
print(response.text) # 以文本形式返回响应内容
print(response.content) # 以字节形式返回响应内容
# 访问响应状态码
print(response.status_code)
# 访问响应头
print(response.headers)
发送POST请求
url = 'http://httpbin.org/post'
data = {'key': 'value'}
response = requests.post(url, data=data)
print(response.text)
在POST请求中,你可以通过data
参数发送表单数据,通过json
参数发送JSON数据:
json_data = {'key': 'value'}
response = requests.post(url, json=json_data)
print(response.text)
发送其他类型的HTTP请求
Requests支持多种HTTP方法,如PUT、DELETE、HEAD、OPTIONS等,使用方式与GET和POST类似:
# PUT请求
url = 'http://httpbin.org/put'
data = {'key': 'value'}
response = requests.put(url, data=data)
# DELETE请求
url = 'http://httpbin.org/delete'
response = requests.delete(url)
# HEAD请求
url = 'http://httpbin.org/get'
response = requests.head(url)
print(response.headers) # HEAD请求通常只返回响应头
定制请求头
你可以通过headers
参数定制HTTP请求头
url = 'http://httpbin.org/get'
headers = {'User-Agent': 'my-app/0.0.1'}
response = requests.get(url, headers=headers)
print(response.text)
会话对象
Requests库还提供了会话(Session)对象,允许你跨请求保持某些参数,如cookies、headers等:
with requests.Session() as s:
s.headers.update({'X-Test': 'true'})
response = s.get('http://httpbin.org/get')
print(response.text)
# 发送第二个请求,此时X-Test头部也会被发送
response = s.get('http://httpbin.org/headers')
print(response.text)
异常处理
当发送请求时,可能会遇到网络问题或服务器错误,你可以通过try-except语句来捕获并处理这些异常:
try:
response = requests.get('http://some-nonexistent-domain')
response.raise_for_status() # 如果响应状态码不是200,则抛出HTTPError异常
except requests.RequestException as e:
print(e)
Requests库非常强大且易于使用,它使得与HTTP服务的交互变得简单而直观。