码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python与HTTP服务交互


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

    http.client标准库

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

    使用方法

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

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

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

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

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

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

    示例代码

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

    1. import http.client
    2. # 创建连接
    3. conn = http.client.HTTPSConnection("www.example.com")
    4. # 发送GET请求
    5. conn.request("GET", "/")
    6. # 获取响应
    7. response = conn.getresponse()
    8. # 输出响应状态码和响应体
    9. print(response.status, response.reason)
    10. print(response.read())
    11. # 关闭连接
    12. conn.close()

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

    requests 

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

    安装:

    pip install requests

    例子:

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

    发送post

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

    RissionPage

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

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

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

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

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

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

     安装:

    pip3  install drissionpage

    例子:

    1. from DrissionPage import SessionPage
    2. # 创建页面对象
    3. page = SessionPage()
    4. # 爬取3页
    5. for i in range(1, 4):
    6. # 访问某一页的网页
    7. page.get(f'https://gitee.com/explore/all?page={i}')
    8. # 获取所有开源库元素列表
    9. links = page.eles('.title project-namespace-path')
    10. # 遍历所有元素
    11. for link in links:
    12. # 打印链接信息
    13. print(link.text, link.link)

    输出信息:

    1. zan8in/afrog https://gitee.com/zanbin/afrog
    2. xieguigang/Darwinism https://gitee.com/xieguigang/Darwinism
    3. RTE-Dev/RedPlayer https://gitee.com/rte-dev/RedPlayer
    4. panday/chat-master-web https://gitee.com/panday94/chat-master-web
  • 相关阅读:
    Linux学习笔记3 - shell基本概念
    【中国知名企业高管团队】系列49:VIVO
    【OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域(MSER)
    Linux——shell外壳程序
    【C++】一些C++11特性
    《web课程设计》基于HTML+CSS+JavaScript典的中医药大学网(11个页面)
    [附源码]java毕业设计食堂线上点餐系统
    云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator
    软考高级系统架构设计师系列论文真题四:论高可靠性系统中软件容错技术的应用
    Notion-douban:搭建自己的阅读清单
  • 原文地址:https://blog.csdn.net/skywalk8163/article/details/136463243
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号