urllib、urllib2、urllib3 和 requests 模块之间有什么区别?

2023-12-05

在Python中,它们之间有什么区别urllib, urllib2, urllib3 and requests模块?为什么是三个?他们似乎做着同样的事情...


我知道已经说过了,但我强烈推荐requestsPython 包。

如果您使用过 Python 以外的语言,您可能会想urllib and urllib2易于使用,代码不多,而且能力很强,这就是我以前的想法。但是requests软件包非常有用且简短,每个人都应该使用它。

首先,它支持完全宁静的 API,并且非常简单:

import requests

resp = requests.get('http://www.mywebsite.com/user')
resp = requests.post('http://www.mywebsite.com/user')
resp = requests.put('http://www.mywebsite.com/user/put')
resp = requests.delete('http://www.mywebsite.com/user/delete')

无论是 GET / POST,您都不必再次对参数进行编码,它只需将字典作为参数即可:

userdata = {"firstname": "John", "lastname": "Doe", "password": "jdoe123"}
resp = requests.post('http://www.mywebsite.com/user', data=userdata)

另外,它甚至还有一个内置的 JSON 解码器(再次,我知道json.loads()不需要写太多,但这确实很方便):

resp.json()

或者,如果您的响应数据只是文本,请使用:

resp.text

这只是冰山一角。这是请求站点的功能列表:

  • 国际域名和 URL
  • 保持活动状态和连接池
  • 具有 Cookie 持久性的会话
  • 浏览器式 SSL 验证
  • 基本/摘要式身份验证
  • 优雅的键/值 Cookie
  • 自动减压
  • Unicode 响应主体
  • 分段文件上传
  • 连接超时
  • .netrc 支持
  • 项目清单
  • Python 2.7、3.6—3.9
  • 线程安全。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

urllib、urllib2、urllib3 和 requests 模块之间有什么区别? 的相关文章

  • 如何并排绘制具有相同 X 坐标的条形图(“闪避”)

    import matplotlib pyplot as plt gridnumber range 1 4 b1 plt bar gridnumber 0 2 0 3 0 1 width 0 4 label Bar 1 align cente
  • 在二维数组中进行所有可能的组合

    我正在尝试制作具有所有可能组合的 4x4 16 像素黑白图像数组 我制作了以下数组作为模板 template 0 0 0 0 start with all white pixels 0 0 0 0 0 0 0 0 0 0 0 0 然后我想迭
  • 学习Python中的解析器

    我记得我读过有关解析器的内容 您只需提供一些示例行 它就知道如何解析某些文本 它只是确定两条线之间的差异 以了解可变部分是什么 我以为它是用 python 写的 但我不确定 有谁知道那是什么图书馆吗 可能你的意思是模板制作器 http co
  • virtualenvwrapper 函数在 shell 脚本中不可用

    所以 我再一次制作了一个很棒的 python 程序 它让我的生活变得更加轻松 并节省了大量时间 当然 这涉及到一个 virtualenv 用mkvirtualenvvirtualenvwrapper 的功能 该项目有一个requiremen
  • 有什么好的适用于 Google App Engine 应用程序的 AJAX 框架吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试在我的 Google App Engine 应用程序中实现 AJAX 因此我正在寻找一个好的
  • 使用ideone时如何传入命令行参数?

    我正在使用 ideone 在线解释器 http ideone com http ideone com 来测试一些 C 和 Python 程序 如何指定命令行参数而不是使用 STDIN 输入 看起来你不能 但是快速破解应该做的伎俩 stati
  • Discord.py 斜线命令在 cogs 中不起作用

    我正在构建一个不和谐的机器人 并且想要在 cogs 内使用斜杠命令 但这些命令不显示或工作 这是代码 cog guild ids 858573429787066368 861507832934563851 class Slash comma
  • 无法使用Python请求会话模块登录网站

    我刚刚开始进行网络抓取 对于我的第一个项目 我尝试使用 requests Session 登录 artofproblemsolving com 并访问另一个用户的帐户 这是我的代码 import requests LOGIN URL htt
  • 对法语文本进行词形还原[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一些法语文本需要以某种方式进行处理 为此 我需要 首先 将文本标记为单词 然后对这些单词进行词形还原以避免多次处理相同的词根 据我
  • Pandas 中每列的曲线拟合 + 外推值

    我有一个包含大约 300 列的数据集 每一列都与深度相关 Pandas DataFrame 的简化版本看起来像这样 import matplotlib pyplot as plt import numpy as np import pand
  • 机器学习的周期性数据(例如度角 -> 179 与 -179 相差 2)

    我使用 Python 进行核密度估计 并使用高斯混合模型对多维数据样本的可能性进行排名 每一条数据都是一个角度 我不确定如何处理机器学习的角度数据的周期性 首先 我通过添加 360 来删除所有负角 因此所有负角都变成了正角 179 变成了
  • Kivy TextInput 水平和垂直对齐(文本居中)

    如何在 Kivy 的 TextInput 中水平居中文本 I have the following screen But I want to centralize my text like this 这是我的 kv 语言的一部分 BoxLa
  • 在字符串内打印单引号

    我想输出 XYZ s ABC 我在Python IDLE中尝试了以下3条语句 第一条和第二条语句输出 a before 带打印功能的第三条语句不输出 before 作为 Python 新手 我想了解为什么 之前输出 在第 1 条和第 2 条
  • 在Python中随机交错2个数组

    假设我有两个数组 a 1 2 3 4 b 5 6 7 8 9 我想将这两个数组交错为变量 c 注意 a 和 b 不一定具有相同的长度 但我不希望它们以确定性的方式交错 简而言之 仅仅压缩这两个数组是不够的 我不想要 c 1 5 2 6 3
  • 解析整数集的字符串并列出间隔

    I have 2 5 7 9 12 string 我想从中获取 2 5 7 8 9 12 列表 python中有没有内置的函数 Thanks UPD 我想 直接的答案是No 不管怎样 谢谢你的 片段 使用一个 建议者斯文 马尔纳克 s 2
  • 如何将 django ModelForm 字段显示为不可编辑

    接受我的初步教训django ModelForm 我想让用户能够编辑博客中的条目 BlogEntry has a date postedTime title and content 我想向用户展示一个编辑表单 其中显示所有这些字段 但仅包含
  • 在 4K 屏幕上使用 Matplotlib 和 TKAgg 或 Qt5Agg 后端

    我在 Ubuntu 16 04 上使用 Matplotlib 2 0 和 Python 3 6 来创建数据图 电脑显示器的分辨率为 4k 分辨率为 3840x2160 绘图数字看起来非常小 字体也很小 我已经尝试过TKAgg and Qt5
  • 如何使用 python 模块的多个 git 分支?

    我想使用 git 来同时处理我正在编写的模块中的多个功能 我目前正在使用 SVN 只有一个工作区 因此我的 PYTHONPATH 上只有该工作区 我意识到这不太理想 所以我想知道是否有人可以建议一种更 正确 的方法来做到这一点 让我用一个假
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • 为数据集生成随机 JSON 结构排列

    我想生成 JSON 结构的许多不同排列作为同一数据集的表示 最好不需要对实现进行硬编码 例如 给定以下 JSON name smith occupation agent enemy humanity nemesis neo 应该产生许多不同

随机推荐

  • 具有预览功能的 Maven Exec 插件

    使用以下命令可以轻松编译 Java 源代码 enable preview
  • 保存/导出 ggplot2 数据,而不是绘图本身

    有没有办法保存或导出用于绘图的 ggplot 数据 我指的不是图像本身 而是存储在全局环境中的信息 例如 Data lt data frame X sample 1 10 Y sample c yes no 10 replace TRUE
  • 将条目号附加到 FileSystemWatcher 输出

    Okay 在这里可能会被视为非常成熟的帖子 我不太擅长 VB 或程序员 但我处于 边做边学 的动力中 我正在开发一个应用程序 它为用户创建目录 并使用 FileSystemWatcher 跟踪创建的目录以及对这些目录的更改 到目前为止 我已
  • 我的 goto 重定向不起作用,但可以与 echo 一起使用

    echo off start1 set p input action for f tokens 1 2 delims a in input do goto a b gt nul 2 gt 1 goto start1 如果我输入 echo y
  • 如何使用python从csv文件中提取最小值和最大值

    我有一个 python 脚本 它从 csv 文件读取并将请求的列附加到 2 个空列表中 之后我需要提取提取的列的最小值和最大值 我写了这段代码 但它似乎不起作用 因为结果是空的 code import csv mydelimeter csv
  • adChar 和 adParamInput 无法识别

    我正在做 sql 到 oracle 的迁移 我必须更改很多旧的 vbscript 代码 这是我在 Oracle 中使用的新代码的示例 这就是引起问题的代码 cmd CreateParameter v CdEnt adChar adParam
  • 在 B 列中获取 A 列中“不在字典中”的单词

    我如何创建一个宏来检查 A 列的每个单元格 找到不在定义的字典中的单词 并将它们写入下一个单元格 用空格分隔 在下图中 您可以看到该宏完成后的工作表示例 完整的想法是从数据库中获取一个 varchar 列并使用 Excel 对其进行拼写检查
  • 模板和继承的“未在此范围内声明”错误[重复]

    这个问题在这里已经有答案了 这是重现我的问题的代码示例 template
  • 在 Windows Phone 8 中选择联系人

    我正在尝试将基本联系人列表添加到我的应用程序中 到目前为止 该应用程序查询了联系人存储并将所有内容显示在列表中 我需要的是一个数据结构 其中包含用户从列表中选择的每个联系人的姓名和号码 我很想看看你的想法 我确信这将是我错过的一些简单的事情
  • 如何在 Flutter 中从画布中裁剪圆形(或正方形或六边形)区域

    我想裁剪一个矩形图像文件并将其制成圆形或方形或六角形将其保存为本地图像文件 我有一个位图 我想从该位图中裁剪圆形或六边形区域 圆圈外的所有像素都应该是透明的 我怎样才能做到这一点 我在中找到了类似的问题android平台 但无法找到真正帮助
  • 从 MySQL 数据库在 Google Maps API v3 上绘制多个多边形

    因此 我尝试通过 MySQL 表中的多边形空间数据将多个多边形绘制到谷歌地图上 我有一个 php 脚本 它根据我的表数据输出以下 XML
  • 链接到另一个页面的按钮(特定部分)

    我正在尝试创建一个按钮 将我重定向到另一个页面上的特定部分 我的索引页上有此代码 a href BruinBier class btn Bekijken a 如果我按下上面的按钮 它应该将我重定向到 Bruin bier 部分下的网上商店页
  • 从 C 优雅地调用 C++

    我们用简单的方式开发一些项目C C99 但是 我们有一个库作为源代码 数学库 C 我们需要这个库 所以我想问一下 集成这个源代码的最优雅的方式是什么 尺寸之间的比例C and C is 20 1所以搬到C 不是这个选项 我们应该使用静态库吗
  • Visual Studio 2019 - 仅强制使用 C++11 功能

    我使用 Visual Studio 2019 进行 C 开发 由于代码部署到的遗留系统的限制 我只能使用 C 11 语言功能 特别是 GCC 4 8 5 VS2019中默认的是C 14 这显然是C 11的超集 我看不到仅指定 C 11 的方
  • 仅当字符串中连续时如何删除重复项? [复制]

    这个问题在这里已经有答案了 对于一个字符串 例如 12233322155552 通过删除重复项 我可以得到 1235 但我想保留的是 1232152 仅删除连续的重复项 import re Only repeated numbers ans
  • Redux-form 6.0.0 Field 组件外访问错误

    在 Redux form v5 中 我能够从装饰表单中的任何位置访问 内联 错误 异步验证 如下所示 const fields email inside the decorated form const email this props f
  • AIR 3.5 移动项目设备 ID

    我想知道是否有人知道针对移动设备 iOS 和 Android 将数据存储在全局数据库中的最佳方法 我正在构建一个根据查询写入 检索信息的应用程序 但我需要知道返回的任何记录是否是从该设备发送的 基本上 这个想法是 如果用户提交一些信息 存储
  • 如何向用户显示时间量?

    我想将时间量从毫秒转换为人类可读的字符串 例如 3 600 000应显示为1 00 00 1小时 Java 中是否有现有的库或类可以做到这一点 从 1 5 开始有 java util concurrent TimeUnit 类 像这样使用它
  • Symfony2 Twig 获取子实体的总计数

    存在以下实体 农场 谷仓和动物 一个农场可以有很多谷仓 一个谷仓可以有很多动物 在 TWIG 模板中显示农场时 还应显示动物的数量 做这个的最好方式是什么 我创建了一个 TWIG 扩展 它允许我轻松显示谷仓的数量 public functi
  • urllib、urllib2、urllib3 和 requests 模块之间有什么区别?

    在Python中 它们之间有什么区别urllib urllib2 urllib3 and requests模块 为什么是三个 他们似乎做着同样的事情 我知道已经说过了 但我强烈推荐requestsPython 包 如果您使用过 Python