1.引言
Python Requests是一个 HTTP 库,它允许我们向 Web 服务器发送 HTTP 请求,并获取响应结果。
requests: 让 HTTP 服务人类 — 来自requests文档
它通过处理会话,cookie 的自动管理以及与 HTTP 连接的 Keep-Alive 能力来简化了 HTTP 请求。
首先,我们需要安装模块。建议使用 pip,具体命令如下:pip install requests
。安装完成后,我们就可以通过import requests
导入请求模块并使用它了。
2.发送Get请求
使用 GET 方法获取 Web 页面
response = requests.get("https://www.poycode.cn/")
print(response)
输出结果:
<Response [200]>
看到上述结果,则表示我们请求成功了。如果你想查看更多关于response的信息,可以参考一下几个方法
print(response.status_code) # 返回状态码
print(response.reason) # 正常返回OK,异常返回对应的Http响应状态描述
print(response.headers) # 获取响应头
print(response.text) # 返回请求的内容
print(response.content) # 返回请求的内容
print(response.cookies) # cookies内容
关于 response.text
与 response.context
的区别:
方法 | 类型 | 解码类型 | 变更编码方式 |
---|---|---|---|
response.text | <class \’str\’> | 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码 | response.encoding=\’gbk\’ |
response.content | <class \’bytes\’> | 没有指定 | response.content.deocde(\’utf-8\’) |
同时,我们还可以通过方法 requests.get(url, params, args)
携带参数 发送请求至对应地址:
url = 'https://www.poycode.cn/'
params = {'id': 1024, 'name':'poycode'}
response = requests.get("https://www.poycode.cn/", params) # args为其他参数,如header、cookies之类,此处不演示
#打印完整请求地址
print(response.url)
结果如下:
https://www.poycode.cn/?id=1024&name=poycode
写个小示例,获取二进制响应,抓取下poycode.cn站点上的图片
response = requests.get("https://static.poycode.cn/wp-content/uploads/2023/06/20230602225540172.jpg")
print(response.content)
with open ('poycode.png', 'wb') as f:
f.write(response.content)
运行代码后,即可在运行路径下看到一张名为 poycode.png
的图片。
3. 使用 POST 方法提交表单数据
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.content)
还可以使用 JSON 数据提交 POST 请求
import json
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', json=payload)
print(response.content)
4.代理服务器
requests模块支持使用代理服务器发送HTTP请求。可以通过以下方式指定代理服务器:
import requests
url = 'http://www.poycode.cn'
proxies = {
'http': 'http://proxy.poycode.cn:8080',
'https': 'http://proxy.poycode.cn:8080',
}
response = requests.get(url, proxies=proxies)
5.使用cookies
requests模块支持使用cookies来保存登录信息等用户状态信息,并且可以方便地获取、设置cookies。
import requests
url = 'https://www.poycode.cn'
response = requests.get(url)
print(response.cookies) # 获取cookies
#直接使用cookies
cookies = repsonse.cookies
resp = requests.post("https://www.poycode.cn", cookies=cookies)
#或者将cookies放入headers中
headers = {"Set-Cookie": cookies}
resp = requests.post("https://www.poycode.cn", headers=headers)
6.其他协议
除了HTTP协议,requests模块还支持使用FTP协议、HTTPS协议、SMTP协议等。可以通过以下方式来使用其他协议:
import requests
url = 'ftp://poycode.cn/file'
response = requests.get(url)
url = 'https://poycode.cn'
response = requests.get(url)
url = 'smtp://poycode.cn'
response = requests.post(url)
7.总结
上一篇教程:Python基础教程:装饰器
以上是 requests 模块的一些基本操作示例。另外requests还能实现认证 requests.get(url, auth=(‘user’,’pwd’),此处不再演示。有需要或想要了解的可以通过查看 requests 的官方文档,以便更好地了解它更高级的用法。
在本教程中,我们快速体验并掌握 requests 模块的基础使用方法。这些足以保证我们应对日常的一些简单开发工作,希望这篇教程能够对你有所帮助!
[…] 上一篇教程:Python基础教程:requests模块发送http请求 Python中的smtplib模块可用于发送电子邮件,它提供了一种方便易用的方式来处理邮件。在教程中,通过使用email模块,使得我们可以发送更为负责的邮件。通过发送邮件,与其他类似于定时任务、告警等功能相结合,可以帮助我们更好地处理日常工作。希望这篇教程能够帮助到您!以上的步骤应用于Python邮件发送的基本过程,您可以根据自己的需要对代码进行修改和改进。 […]
[…] Python基础教程:requests模块发送http请求 | 陆理手记) […]