更快更简单的python替换请求。

faster-than-requests的Python项目详细描述


比请求快

screenshot

screenshot

<表><广告>库速度文件 LOC/< 依赖关系开发人员 < /广告><正文>Pywget152.39wget>;17请求15.58>;202558>;=7>;527请求(缓存对象)5.50>;202558>;=7>;527urllib4.00????12000(标准库)????urllib33.55>;4052420(无SSL),>;=5(SSL)>;188pycurl0.75>;155932卷曲,libcurl>;50pycurl(无ssl)0.68>;155932卷曲,libcurl>;50比请求快 0.45<细节>
  • 使用cloc计算代码行数。
  • 准备运行时包的直接依赖关系。
  • 基准运行在Docker上,来自Dockerfile的报告。
  • 开发者从git的贡献者列表中计算出来。
  • speed是完成10000个http本地请求的irl时间。
  • 截至2019年的统计数据。
  • x86_64位AMD、固态硬盘、Arch Linux。
<详细内容>

使用

importfaster_than_requestsasrequestsprint(requests.gets("http://httpbin.org/get"))# GETprint(requests.posts("http://httpbin.org/post","Some Data Here"))# POSTrequests.downloads("http://example.com/foo.jpg","output.jpg")# See Docs for more info.

get()

<细节>

说明: 获取一个url字符串,生成一个http get并返回一个带有响应的dict。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。

示例:

  • url="http://example.com"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

posts()

<细节>

说明: 获取一个url字符串,生成一个http post并返回带有响应的dict。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

put()

<细节>

说明: 获取一个URL字符串,生成一个HTTP PUT并返回一个带有响应的DICT。

参数:

    url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

删除()

<细节>

说明: 获取URL字符串,进行HTTP删除并返回带有响应的dict。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。

示例:

  • url="http://example.com"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

修补程序()

<细节>

说明: 获取一个URL字符串,生成一个HTTP修补程序并返回一个带有响应的dict。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

get2str()

<细节>

说明: 获取一个url字符串,生成一个http get并返回一个带有响应体的字符串。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。

示例:

  • url="http://example.com"

返回:响应体,字符串类型,可以是空字符串。

<详细内容>

get2str_list()

<细节>

说明: 获取URL列表,为每个URL生成一个HTTP GET,并返回带有响应正文的字符串列表。

参数:

  • 列出URL的列表远程URL的列表,列表类型,必需。列表中的对象必须是字符串类型。

示例:

  • 列出URL=["http://example.com/foo","http://example.com/bar"]

返回: 响应体列表,列表类型,列表值为字符串类型, 列表的值可以是空字符串,也可以是空列表。

<详细内容>

get2ndjson_list()

<细节>

说明: 获取一个url列表,为每个url生成一个http get,返回一个包含响应的字符串列表,并将响应写入ndjson文件,它可以将多个json响应累积到一个文件中。

参数:

  • 列出URL的列表远程URL的列表,列表类型,必需。列表中的对象必须是字符串类型。
  • ndjson_file_path本地可写ndjson文件的完整路径,字符串类型,必需,文件可能不存在,将被创建,如果存在,将被覆盖。

示例:

  • 列出URL=["http://example.com/foo","http://example.com/bar"]
  • ndjson_file路径="/some/folder/some/file.ndjson"

返回:无。

<详细内容>

get2dict()

<细节>

说明: 获取一个url,生成一个http get,返回一个带有响应体的dict。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。

示例:

  • url="http://example.com"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

get2json()

<细节>

说明: 获取一个url,生成一个http get,返回一个小型的计算机友好的单行json和响应体。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。

示例:

  • url="http://example.com"

返回:响应体,缩小json,在一行上。

<详细内容>

get2json_pretty()

<细节>

说明: 获取一个url,生成一个http get,返回一个打印得很好的多行json和响应体。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。

示例:

  • url="http://example.com"

返回:响应体,打印精美的JSON,多行。

<详细内容>

get2assert()

<细节>

说明: 获取一个url,生成一个http get,不返回任何内容,生成一个断言,对于unittest和调试非常有用。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 预期的响应预期的内容,字符串类型,必需,可以是空字符串。

返回:无。

<详细内容>

getlist2list()

<细节>

说明: 获取一个URL列表,为每个URL生成一个HTTP GET,返回一个响应列表。

参数:

  • 列出URL的列表远程URL,列表类型,必需,列表中的对象必须是字符串类型。

示例:

  • 列出URL=["http://example.com/foo","http://example.com/bar"]

返回: 响应体列表,列表类型,列表值为字符串类型, 列表的值可以是空字符串,也可以是空列表。

<详细内容>

post2str()

<细节>

说明: 获取一个url,生成一个http post,将响应体返回为字符串类型。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回:响应体,字符串类型,可以是空字符串。

<详细内容>

post2dict()

<细节>

说明: 获取一个url,在该url上发布一个http帖子,返回带有响应的dict。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

post2json()

<细节>

说明: 获取一个URL列表,为每个URL生成一个HTTP GET,返回一个响应列表。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。
例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回:响应,字符串类型。

<详细内容>

post2json_pretty()

<细节>

说明: 获取一个URL列表,为每个URL生成一个HTTP GET,返回一个响应列表。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • url="http://example.com"
  • body="我的身体数据在这里"

返回:响应,字符串类型。

<详细内容>

post2assert()

<细节>

说明: 获取一个url,在该url上发布一个http帖子,然后返回一个响应。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。
  • 预期的响应预期的内容,字符串类型,必需,可以是空字符串。

返回:无。

<详细内容>

post2list()

<细节>

说明: 获取一个url列表,为每个url生成一个http帖子,返回一个响应列表。

参数:

  • 列出URL的列表远程URL,列表类型,必需,列表中的对象必须是字符串类型。
  • 正文正文数据,字符串类型,必需,可以是空字符串。

示例:

  • 列出URL=["http://example.com/foo","http://example.com/bar"]
  • body="我的身体数据在这里"

返回: 响应体列表,列表类型,列表值为字符串类型, 列表的值可以是空字符串,也可以是空列表。

<详细内容>

downloads()

<细节>

说明: 获取一个URL列表,为每个URL生成一个HTTP GET,返回一个响应列表。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 文件名本地文件名,字符串类型,必需,不能为空字符串,建议使用完整路径,可以是相对路径,包括文件扩展名。

示例:

  • url="http://example.com"
  • filename="cat memes.jpg"

返回:无。

<详细内容>

下载列表()

<细节>

说明: 获取URL列表,为列表中的每个URL制作一个HTTP GET下载。

参数:

  • list_of_files元组列表,元组必须有2个项目长,第一个项目是url,第二个项目是filename。 远程url,字符串类型,必需,不能为空字符串,是元组上的第一个项。 本地文件名,字符串类型,必需,不能是空字符串,可以是完整路径,可以是相对路径,必须包含文件扩展名。

示例:

  • 列表文件=[("http://example.com/cat.jpg","kitten.jpg")]
  • 列表文件=[("http://example.com/cat.jpg","kitten.jpg"),("http://example.com/dog.jpg","doge.jpg")]

返回:无。

<详细内容>

下载列表延迟()

<细节>

说明: 获取URL列表,对列表中的每个URL进行1次HTTP GET下载,并有一个延迟,可选随机延迟。

参数:

  • 延迟下载和下一次下载之间的延迟,整数类型,必需,必须是非零正整数值。
  • 随机化随机化延迟,bool类型,必需,默认为false
  • 调试ode>调试下载,bool类型,必需,默认为false
  • list_of_files元组列表,元组必须有2个项目长,第一个项目是url,第二个项目是filename。 远程url,字符串类型,必需,不能为空字符串,是元组上的第一个项。 本地文件名,字符串类型,必需,不能是空字符串,可以是完整路径,可以是相对路径,必须包含文件扩展名。

示例:

  • 列表文件=[("http://example.com/cat.jpg","kitten.jpg")]
  • 列表文件=[("http://example.com/cat.jpg","kitten.jpg"),("http://example.com/dog.jpg","doge.jpg")]

返回:无。

<详细内容>

setHeaders()

<细节>

说明: 从参数中设置http头。

参数:

  • http头,列表类型,必需, 一个元组列表,元组必须有2个项目长, 不能是空列表,不能是空元组, 元组的第一项是键,第二项是值, 键不能为空字符串,值可以为空字符串,两者都必须被剥离。

示例:

  • headers=[("key","value")]
  • headers=[("key0","value0"),("key1","value1")]
  • 标题=[("内容类型","文本/纯文本"),("dnt","1")]

返回:无。

<详细内容>

请求()

<细节>

说明: 请求的低级API,所有可用参数都作为参数,以生成详细的自定义HTTP请求。

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。
  • http方法http方法,字符串类型,必需,不能为空字符串,值可以是"get""post",等等。
  • 调试调试模式,bool类型,必需,默认为false
  • http_headershttp headers,列表类型,必需, 一个元组列表,元组必须有2个项目长, 不能是空列表,不能是空元组, 元组的第一项是键,第二项是值, 键不能为空字符串,值可以为空字符串,两者都必须被剥离。

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

请求2()

<细节>

说明: 请求的低级api,所有可用的参数都是额外的选项,用于生成详细的自定义http请求。 它类似于request()函数,但使用不同的功能重新设计。 可能比request()

参数:

  • url远程url,字符串类型,必需,不能为空字符串。
  • 正文正文数据,字符串类型,必需,可以是空字符串。
  • 代理URL网络代理的完整URL,字符串类型,必需,可以是空字符串。
  • proxy authauth of your network proxy if any,string type,required,可以是空字符串。
  • user agent用于请求的用户代理,字符串类型,必需,可以是空字符串。
  • 超时超时,整数类型,毫秒精度,必须是非零正整数,可以是-1
  • maxRedirects最大重定向,整数类型,必须是非零正整数,可以是1
  • http方法http方法,字符串类型,必需,不能为空字符串,值可以是"get""post",等等。
  • http_headershttp headers,列表类型,需要D 一个元组列表,元组必须有2个项目长, 不能是空列表,不能是空元组, 元组的第一项是键,第二项是值, 键不能为空字符串,值可以为空字符串,两者都必须被剥离。

返回: response,dict类型,dict的值是字符串类型, dict的值可以是空字符串,但键总是一致的。

<详细内容>

debugconfig()

<细节>

说明: 调试库的内部配置,不接受参数,不返回任何内容, 将打印精美的人性化多行JSON配置打印到标准输出终端。

参数:无。

返回:无。

<详细内容>

tuples2json_pretty()

<细节>

说明: 将元组转换为json,这是一个ux改进,只是为了方便,这是100%可选的, 返回转换为打印精美的人性化多行json的元组。

参数:

  • 元组包含元组的列表,列表类型,必需, 一个元组列表,元组必须有2个项目长, 不能是空列表,不能是空元组, 元组的第一项是键,第二项是值, 键不能为空字符串,值可以为空字符串,两者都必须被剥离。

返回:json,字符串类型。

<详细内容>

tuples2json()

<细节>

说明: 将元组转换为json,这是一个ux改进,只是为了方便,这是100%可选的, 返回转换为小型计算机友好型单行JSON的元组。

参数:

  • 元组包含元组的列表,列表类型,必需, 一个元组列表,元组必须有2个项目长, 不能是空列表,不能是空元组, 元组的第一项是键,第二项是值, 键不能为空字符串,值可以为空字符串,两者都必须被剥离。

返回:json,字符串类型。

<详细内容>

有关更多示例,请查看示例和测试。

而不是有一对带有大量参数的函数,你应该提供这些参数来让它工作, 我们有一些很小的函数,参数很少,它们只做一件事并尽可能快地完成它。

很多功能都是面向数据科学、大数据、开放数据、web废弃、使用http rest json api。

安装

  • PIP安装速度快于请求

docker

  • 在Docker上快速试驾!
$ ./build-docker.sh
$ ./run-docker.sh
$ ./server4benchmarks &# Inside Docker.
$ python3 benchmark.py   # Inside Docker.

依赖关系

平台

  • Linux
  • 窗口
  • mac
  • 安卓
  • 覆盆子皮
  • BSD

额外费用

更多更快的库…

必要条件

  • 巨蟒3。
  • 合同一般条款。
  • 64位。
低级API附加组件

要控制默认值,可以使用以下可选bash环境变量:

  • 请求超时超时,int类型,必须是非零正值,毫秒精度,可以是-1
  • requests\u maxredirectsmaximum redirects,int类型必须是非zero正值,可以是1
  • 请求用户代理用户代理,str类型,可以是空字符串,建议为空字符串,可以是"

示例:

$ exporthttps_proxy="http://yourProxyUrl:8080"
$ exportrequests_maxredirects="42"
$ # This is the Bash command line terminal!.
  • 这是100%可选的。这是作为附加功能提供的。
< H1> FAQ
  • 你的想法、灵感、理由等是什么?

您可以随意使用这个开源软件进行分叉、克隆、下载、改进、重新实现和播放。使它快10倍,小10倍。

  • 这和ssl一起工作?
<是的。

  • 这在没有ssl的情况下有效吗?
<是的。

  • 这需要cython?

< /P>

  • 这是Pypy的吗?

< /P>

  • 这是在蟒蛇身上跑的?
我不知道。(不支持)

  • 这是32位的?

< /P>

  • 这是和叮当一起跑的吗?

< /P>

  • 如何安装?

pip安装速度快于u请求

  • 开发人员文档?

是的。 (zip,因为github将repo标记为javascript)

  • 哪里可以得到帮助?

https://github.com/juancarlospaco/faster-than-requests/issues

  • 如何设置url?

url="http://example.com"(始终为第一个参数)。

  • 如何设置http方法?

http_method="get"获取。

http_method="post"用于post。

http_method="put"用于放置。

http_method="patch"用于修补程序。

  • 如何设置http主体?

body="我的身体"

  • 如何设置http header key=value?

setheaders()

  • 如何设置http代理?

请求2()

导出https_proxy="http://yourproxyurl:8080"

导出http_proxy="http://yourproxyurl:8080"

代理的标准Linux Bash环境变量。

它将自动从环境变量中读取。

  • 什么是ndjson?

https://github.com/ndjson/ndjson规范

  • 怎么能比皮考尔快呢?

我不知道。

  • 为什么对http头使用tuple而不是dict?

由于速度性能的原因,dicttuple更慢、更大、更重和可变。

  • 为什么需要64位?

可能它在32位上工作,但不受支持,整数太小,性能可能更差。

  • 为什么需要Python3?

也许它可以在Python2上工作,但不受支持,而且性能可能更差,我们建议迁移到Python3。

  • 我可以在try:except:块上包装函数吗?

函数没有内部的try:except:块, 因此,如果您需要非常有弹性的代码,可以将它们包装在try:except:块中。

  • pip无法安装或无法构建轮子?

在pip install命令末尾添加:

--隔离--禁用PIP版本检查--无缓存目录--无二进制:全部:

不是我的错误。

  • 如何建设这个项目?

build.sh

  • 如何包装项目?

包.sh

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java以编程方式从TableLayout中删除所有行   Java Web Sart Ubuntu12.1。加载资源(图像)   人们如何让Java SPNEGO客户端在Windows中工作?   java Eclipselink:ObjectArrayMapping和ClassDescriptor   控制台中带有引号/空格的java Javafx命名参数   java创建服务失败:找不到对象?   java Hazelcast:如何在测试期间禁用自动发现?   使用TuckyUrlRewriteFilter rermoteaddr的java块IP   javascript如何在angular 4中进行同步http调用   输入字符串的java排列   java Jenkins不是以Xrs Xmx2048m XX:MaxPermSize=512m(windows)开始的   AWS EMR上的java avro错误   java从两个ArrayList中提取特定连接的对象,组合这些相关对象并从子类中打印   java从主题中删除什么时间点消息?   谷歌像素设备上的java InvalidKeyException   java如何在执行测试后重建项目   java Android 2.2 readUTF()socket问题   按下安卓设备上的“后退”按钮后java Toast没有完成?