📅  最后修改于: 2023-12-03 15:04:53.506000             🧑  作者: Mango
Requests是Python的一个常用HTTP客户端库。 它允许您以简洁的方式向服务器发送HTTP/1.1请求,并使用关键字参数提供POST数据,表单数据,多部分文件和Cookie等数据。它适用于Python 2.7和Python 3+。
使用pip可轻松安装Requests:
$ pip install requests
发送GET请求非常简单,只需要调用requests.get(url)
函数即可。例如,如果要获取GitHub的首页,可以使用以下代码:
import requests
response = requests.get('https://github.com')
print(response.status_code) # 200
print(response.content)
在这个例子中,我们向requests.get()
函数传递要请求的URL,然后使用response
对象获得响应。此外,我们还可以查看响应的状态码status_code
和响应文本content
。
发送POST请求也非常简单。只需要构造一个包含POST数据的字典,并将其传递给requests.post(url, data)
函数即可。例如,要向服务器提交一个表单:
import requests
payload = {'username': 'john', 'password': 'doe'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.json())
在这个例子中,我们使用requests.post()
函数发送POST请求,将包含用户名和密码的payload传递给函数。在响应中,response.json()
返回的是一个Python对象,可以轻松地访问其中的信息。
有些服务可能需要特定的HTTP请求头才能正常工作。使用Requests,可以轻松地设置请求头。例如,要使用User-Agent头发送请求:
import requests
url = 'https://www.nba.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.36'}
response = requests.get(url, headers=headers)
print(response.content)
在这个例子中,我们使用requests.get()
函数向nba.com发送请求,并设置了User-Agent请求头。User-Agent请求头用于告诉服务器您使用的是什么浏览器和操作系统。此设置对于模拟不同类型的浏览器非常有用。
默认情况下,Requests会验证所连接服务器的SSL证书。如果要忽略证书验证,可将verify
参数设置为False
。例如:
import requests
url = 'https://github.com'
response = requests.get(url, verify=False)
print(response.content)
在这个例子中,我们将verify
参数设置为False
,并发送GET请求。这可能会导致危险行为,因为证书验证是防止伪造和恶意代码攻击的一种方法。
当使用Requests发送HTTP请求时,如果出现连接问题或空响应等问题,Requests会引发异常。异常可以简单地捕捉并处理,例如:
import requests
try:
response = requests.get('https://www.non-existent.com')
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print('HTTP error:', err)
except requests.exceptions.RequestException as err:
print('Non-HTTP error:', err)
在这个例子中,我们使用raise_for_status()
方法确保请求成功并捕获任何HTTP错误。如果请求失败,将引发HTTPError异常。其他类型的异常也可以使用类似的方式处理。
以上是Requests-环境设置的介绍。使用Requests可以以简洁的方式向服务器发送HTTP/1.1请求,并轻松地处理POST数据,表单数据,多部分文件和Cookie等数据。许多高级功能,如HTTP头设置和证书验证,也可以使用Requests轻松处理。