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 模块之间有什么区别? 的相关文章

  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我

随机推荐

  • 具有预览功能的 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