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请求的示例:

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请求变得简单且人性化。

安装:

pip install requests

例子:

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

发送post

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的替代品

 安装:

pip3  install drissionpage

例子:

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)

输出信息:

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

相关推荐

  1. PythonHTTP服务交互

    2024-03-10 07:50:03       45 阅读
  2. C#.NET Python 交互

    2024-03-10 07:50:03       44 阅读
  3. python如何前端交互

    2024-03-10 07:50:03       22 阅读
  4. python 快速创建http服务

    2024-03-10 07:50:03       24 阅读
  5. debugger,pythonjs代码交互

    2024-03-10 07:50:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 07:50:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 07:50:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 07:50:03       87 阅读
  4. Python语言-面向对象

    2024-03-10 07:50:03       96 阅读

热门阅读

  1. ConcurrentHashMap 底层原理和JDK版本对比

    2024-03-10 07:50:03       41 阅读
  2. [axios]使用指南

    2024-03-10 07:50:03       45 阅读
  3. 【Vue3 组合式 API: reactive 和 ref 函数】

    2024-03-10 07:50:03       43 阅读
  4. 【conda】conda卸载并重新安装指定版本软件package

    2024-03-10 07:50:03       44 阅读
  5. 用C语言easyx 做一个《正弦彩环》

    2024-03-10 07:50:03       41 阅读
  6. python知网爬虫论文pdf下载+立即可用(动态爬虫)

    2024-03-10 07:50:03       40 阅读
  7. PHP端口批量查询工具单文件

    2024-03-10 07:50:03       46 阅读
  8. 动态SLAM论文阅读笔记

    2024-03-10 07:50:03       52 阅读