Python requests库是一个基于HTTP库的第三方库,将Python语言的HTTP请求处理和处理HTTP响应的功能进行了封装,使得HTTP请求更加简单方便。
一、安装requests库
1.安装方式:
pip install requests
2.验证是否安装成功:
import requests
print(requests.__version__)
如果安装成功,则会输出requests库的版本号。
二、HTTP请求
1.GET请求
在requests库中,使用get函数来实现GET方法。
import requests
url="http://www.example.com/"
response=requests.get(url)
print(response.text)
该代码实现了向http://www.example.com/发送GET方法的请求,并输出HTTP响应的文本内容。
2.POST请求
在requests库中,使用post函数来实现POST方法。
import requests
url="http://www.example.com/"
data={"key1":"value1","key2":"value2"}
response=requests.post(url,data=data)
print(response.text)
该代码实现了向http://www.example.com/发送POST方法的请求,并输出HTTP响应的文本内容。
三、HTTP响应
在requests库中接收HTTP响应,可以通过response对象中的属性来实现。
1.响应内容
通过response的text属性,可以获取HTTP响应的文本内容。
import requests
url="http://www.example.com/"
response=requests.get(url)
print(response.text)
该代码实现了向http://www.example.com/发送GET方法的请求,并输出HTTP响应的文本内容。
2.响应状态码
通过response的status_code属性,可以获取HTTP响应的状态码。
import requests
url="http://www.example.com/"
response=requests.get(url)
print(response.status_code)
该代码实现了向http://www.example.com/发送GET方法的请求,并输出HTTP响应的状态码。
3.响应头
通过response的headers属性,可以获取HTTP响应头信息。
import requests
url="http://www.example.com/"
response=requests.get(url)
print(response.headers)
该代码实现了向http://www.example.com/发送GET方法的请求,并输出HTTP响应的头信息。
四、异常处理
requests库中提供了多种异常处理方式,其中常用的一个异常是requests.exceptions.RequestException。
import requests
try:
response=requests.get("http://www.unknown.com/")
response.raise_for_status()
except requests.exceptions.RequestException as e:
print(e)
该代码实现了向http://www.unknown.com/发送GET方法的请求,如果发生错误,将打印错误信息。
五、HTTPS请求
requests库中同样支持SSL/TLS验证,这是一种重要的保护机制,可以使用verify参数来进行设置。
import requests
url="https://www.example.com/"
response=requests.get(url,verify=True)
print(response.text)
该代码实现了向https://www.example.com/发送GET方法的请求,并输出HTTP响应的文本内容。
六、设置请求头
请求头是HTTP请求中的一部分,用于向服务器传递一些额外的信息。在requests库中可以使用headers参数来设置请求头。
import requests
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.36"}
response=requests.get(url,headers=headers)
print(response.text)
该代码实现了向http://www.example.com/发送GET方法的请求,并设置了请求头,输出HTTP响应的文本内容。
七、文件上传
在requests库中可以使用post函数进行上传文件操作。
import requests
url="http://www.example.com/"
files={"file":open("abc.txt","rb")}
response=requests.post(url,files=files)
print(response.text)
该代码实现了向http://www.example.com/发送POST方法的请求,并上传名为abc.txt的文件,输出HTTP响应的文本内容。