Python使用requests模块发送http请求的方法介绍

 更新时间:2023年06月26日 10:11:54   作者:陆理手记  
Python Requests是一个 HTTP 库,它允许我们向 Web 服务器发送  HTTP 请求,并获取响应结果,本文将会详细介绍Python requests模块如何发送http请求,文中有相关的代码示例,需要的朋友可以参考下

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.textresponse.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.总结

以上是 requests 模块的一些基本操作示例。另外requests还能实现认证 requests.get(url, auth=('user','pwd'),此处不再演示。有需要或想要了解的可以通过查看 requests 的官方文档,以便更好地了解它更高级的用法。

在本教程中,我们快速体验并掌握 requests 模块的基础使用方法。这些足以保证我们应对日常的一些简单开发工作,希望这篇教程能够对你有所帮助!

到此这篇关于Python requests模块发送http请求的方法的文章就介绍到这了,更多相关Python requests http请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python如何将空格分隔输入两个数

    python如何将空格分隔输入两个数

    这篇文章主要介绍了python如何将空格分隔输入两个数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python中的SOLID原则实例详解

    Python中的SOLID原则实例详解

    SOLID原则是由Robert C. Martin提出的以首字母缩写命名的编码准则,它代表了五种不同的编码习惯,下面这篇文章主要给大家介绍了关于Python中SOLID原则的相关资料,需要的朋友可以参考下
    2023-02-02
  • 解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题

    解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题

    本文主要介绍了解决plt.imshow显示cv2.imread读取的图像有色差发蓝的四种方法问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • 利用python批量爬取百度任意类别的图片的实现方法

    利用python批量爬取百度任意类别的图片的实现方法

    这篇文章主要介绍了利用python批量爬取百度任意类别的图片的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • pandas采样的实现方法

    pandas采样的实现方法

    pandas提供了多种方法进行随机采样,包括指定数量、按比例、设置随机种子、有无放回抽样及按列和分层抽样,下面就来介绍一下,感兴趣的可以了解一下
    2024-12-12
  • python 合并多个excel中同名的sheet

    python 合并多个excel中同名的sheet

    这篇文章主要介绍了python 如何合并多个excel中同名的sheet,帮助大家更好的利用python处理excel表格,感兴趣的朋友可以了解下
    2021-01-01
  • python+pandas生成指定日期和重采样的方法

    python+pandas生成指定日期和重采样的方法

    下面小编就为大家分享一篇python+pandas生成指定日期和重采样的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • pandas应用实例之pivot函数详解

    pandas应用实例之pivot函数详解

    最近在做基于python的数据分析工作,引用第三方数据分析库pandas,所以下面这篇文章主要给大家介绍了关于pandas应用实例之pivot函数的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • Python判断对象是否相等及eq函数的讲解

    Python判断对象是否相等及eq函数的讲解

    今天小编就为大家分享一篇关于Python判断对象是否相等及eq函数的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • python连接oracle数据库操作实例及遇到的异常

    python连接oracle数据库操作实例及遇到的异常

    这篇文章主要给大家介绍了关于python连接oracle数据库操作实例及遇到的一些异常,Oracle是著名且广泛使用的数据库之一,而python的数据处理功能可以很好地利用这种连接性,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12

最新评论