Python与HTTP服务交互

Python与HTTP服务交互,可以通过http.client requests RissionPage等。

http.client标准库

http.client 是Python标准库中的一个模块,用于发送HTTP请求。这个模块提供了一个低级别的接口,允许你手动构建HTTP请求并处理响应。下面是对 http.client 的详细介绍:

使用方法

使用 http.client 发送HTTP请求通常涉及以下步骤:

  1. 创建连接 :使用 http.client.HTTPSConnectionhttp.client.HTTPConnection 创建一个连接对象。

  2. 发送请求 :使用连接对象的 request 方法发送请求。你需要指定请求方法(如 'GET'、'POST' 等)、请求的URI、以及可选的请求头和请求体。

  3. 获取响应 :使用连接对象的 getresponse 方法获取响应对象。这个对象是一个 http.client.HTTPResponse 实例,它提供了对响应的访问。

  4. 读取响应内容 :你可以使用响应对象的 read 方法读取响应体。

  5. 关闭连接:完成请求和响应处理后,记得关闭连接。

示例代码

下面是一个使用 http.client 发送GET请求的示例:

python 复制代码
import http.client  
  
# 创建连接  
conn = http.client.HTTPSConnection("www.example.com")  
  
# 发送GET请求  
conn.request("GET", "/")  
  
# 获取响应  
response = conn.getresponse()  
  
# 输出响应状态码和响应体  
print(response.status, response.reason)  
print(response.read())  
  
# 关闭连接  
conn.close()

http.client 提供的是底层的HTTP通信功能,如果你想要更高级的功能,如自动处理重定向、连接池等,你可能需要考虑使用其他库,如 requests

requests

requests库是一个用Python语言编写的HTTP客户端库,基于urllib3模块,采用Apache2 Licensed开源协议。这个库使得发送HTTP请求变得简单且人性化。

安装:

python 复制代码
pip install requests

例子:

python 复制代码
import requests  
  
# 发送GET请求到指定的URL  
response = requests.get('https://www.example.com')  
  
# 输出响应的状态码  
print(response.status_code)  
  
# 输出响应的内容  
print(response.text)

发送post

python 复制代码
import requests  
  
# 发送POST请求到指定的URL,并附带一些数据  
url = 'https://www.example.com/post'  
data = {'key1': 'value1', 'key2': 'value2'}  
response = requests.post(url, data=data)  
  
# 输出响应的状态码和内容  
print(response.status_code)  
print(response.text)

RissionPage

RissionPage 是一个基于 python 的网页自动化工具。

它既能控制浏览器,也能收发数据包,还能把两者合而为一。

可兼顾浏览器自动化的便利性和 requests 的高效率。

它功能强大,内置无数人性化设计和便捷功能。

它的语法简洁而优雅,代码量少,对新手友好。

个人理解,它是一个request的替代品

安装:

bash 复制代码
pip3  install drissionpage

例子:

python 复制代码
from DrissionPage import SessionPage

# 创建页面对象
page = SessionPage()

# 爬取3页
for i in range(1, 4):
    # 访问某一页的网页
    page.get(f'https://gitee.com/explore/all?page={i}')
    # 获取所有开源库<a>元素列表
    links = page.eles('.title project-namespace-path')
    # 遍历所有<a>元素
    for link in links:
        # 打印链接信息
        print(link.text, link.link)

输出信息:

python 复制代码
zan8in/afrog https://gitee.com/zanbin/afrog
xieguigang/Darwinism https://gitee.com/xieguigang/Darwinism
RTE-Dev/RedPlayer https://gitee.com/rte-dev/RedPlayer
panday/chat-master-web https://gitee.com/panday94/chat-master-web
相关推荐
方华世界6 分钟前
企业级Java AI Agent应用平台
java·开发语言·人工智能
aqi0010 分钟前
15天学会AI应用开发(十三)上下文与RAG的阶段性总结
人工智能·python·大模型·ai编程·ai应用
程序员杰哥12 分钟前
接口测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
大海变好AI26 分钟前
专业的智能体算力架构高性价比品牌公司
python
ujainu小34 分钟前
原生性能优化:6变量实现高效桥接
开发语言·华为·性能优化·harmonyos
甄同学40 分钟前
第十七篇:Bash Executor命令执行器,安全运行Shell命令
开发语言·安全·bash
张32341 分钟前
Go语言基础 Map 函数值 闭包
开发语言·golang
江华森43 分钟前
深入理解 Flask 实现原理
后端·python·flask
FriendshipT1 小时前
Ultralytics:解读SPPF模块
人工智能·pytorch·python·深度学习·目标检测