Python请求库requests详解
1. 介绍
requests
是一个简洁、人性化的第三方Python库,用于发送HTTP请求。它比内置的urllib
模块更加强大和易用,是大多数Python开发者选择的HTTP库之一。
2. 安装
你可以使用pip来安装requests
库,只需要在命令行中输入以下命令即可:
3. 发送GET请求
3.1 基本使用
使用requests
库发送GET请求非常简单,只需要调用requests.get()
方法并传入目标URL即可。以下是一个简单的示例:
运行上面的代码,你将会得到jsonplaceholder网站上所有帖子的内容,以JSON格式返回。你也可以通过response.json()
方法直接将返回的JSON字符串转换为Python字典。
3.2 传递参数
有时候我们需要在GET请求中传递一些参数,例如查询字符串。你可以将这些参数作为一个字典传递给params
参数。以下是一个示例:
在这个示例中,我们传递了一个userId
参数,请求将会返回所有userId
为1的帖子。
4. 发送POST请求
4.1 发送表单数据
要发送POST请求并提交表单数据,可以使用data
参数。以下是一个示例:
这里我们向httpbin发送了一个POST请求,并附带了表单数据username
和password
。
4.2 发送JSON数据
如果要发送JSON数据,可以使用json
参数。以下是一个示例:
在这个示例中,我们向httpbin发送了一个POST请求,并附带了JSON数据。
5. 响应处理
发送请求后,requests
库会返回一个Response
对象,通过这个对象我们可以获取响应的各种信息。以下是一些常用的方法和属性:
response.text
:获取响应内容的文本形式。response.json()
:将响应内容解析为JSON格式。response.status_code
:获取响应的状态码。response.headers
:获取响应的头部信息。response.cookies
:获取响应中的cookies。response.content
:获取响应内容的二进制形式。
6. 设置请求头部
有时候我们需要在请求中设置一些自定义的头部信息,可以使用headers
参数。以下是一个示例:
在这个示例中,我们向httpbin发送了一个GET请求,并设置了User-Agent
属性。
7. 错误处理
发起请求时,可能会遇到一些错误,如超时、连接失败等。requests
库提供了一些内置的异常类,可以帮助我们处理这些错误。以下是一些常见的异常类:
requests.exceptions.ConnectionError
:连接错误。requests.exceptions.Timeout
:请求超时。requests.exceptions.HTTPError
:HTTP错误。
你可以使用try-except
语句来捕获这些异常,对错误进行处理。
8. 会话对象
在某些情况下,我们需要保持会话状态,以便在多次请求中共享cookie等信息。requests
库提供了Session
对象来处理这种情况。以下是一个示例:
在这个示例中,我们创建了一个会话对象,并使用该对象连续发送了两次请求。
9. SSL证书验证
在发送HTTPS请求时,requests
库会默认验证SSL证书。如果需要禁用证书验证,可以将verify
参数设置为False
。以下是一个示例:
在这个示例中,我们向example.com
发送了一个GET请求,并禁用了SSL证书验证。
10. 代理设置
如果需要使用代理服务器发送请求,可以在参数中设置proxies
。以下是一个示例:
在这个示例中,我们向example.com
发送了一个GET请求,并设置了HTTP和HTTPS代理。
11. 总结
requests
是一个功能强大且易用的HTTP库,提供了简洁的API和丰富的功能,使得发送HTTP请求变得轻松和愉快。