更快更简单的python替换请求。
faster-than-requests的Python项目详细描述
比请求快
<表><广告>152.39
15.58
5.50
4.00
3.55
0.75
0.68
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="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_headers
http headers,列表类型,必需, 一个元组列表,元组必须有2个项目长, 不能是空列表,不能是空元组, 元组的第一项是键,第二项是值, 键不能为空字符串,值可以为空字符串,两者都必须被剥离。
返回:
response,dict
类型,dict的值是字符串类型,
dict的值可以是空字符串,但键总是一致的。
请求2()
<细节>说明:
请求的低级api,所有可用的参数都是额外的选项,用于生成详细的自定义http请求。
它类似于request()
函数,但使用不同的功能重新设计。
可能比request()
慢
参数:
url
远程url,字符串类型,必需,不能为空字符串。正文
正文数据,字符串类型,必需,可以是空字符串。代理URL
网络代理的完整URL,字符串类型,必需,可以是空字符串。proxy auth
auth of your network proxy if any,string type,required,可以是空字符串。user agent
用于请求的用户代理,字符串类型,必需,可以是空字符串。超时
超时,整数类型,毫秒精度,必须是非零正整数,可以是-1
maxRedirects
最大重定向,整数类型,必须是非零正整数,可以是1
http方法
http方法,字符串类型,必需,不能为空字符串,值可以是"get"
,"post"
,等等。http_headers
http 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
额外费用
更多更快的库…
- https://github.com/juancarlospaco/faster than csv faster than csv
- https://github.com/juancarlospaco/faster than walk faster than walk
- 我们希望使开源更快、更好、更强。
必要条件
- 巨蟒3。
- 合同一般条款。
- 64位。
低级API附加组件
要控制默认值,可以使用以下可选bash环境变量:
请求超时
超时,int
类型,必须是非零正值,毫秒精度,可以是-1
requests\u maxredirects
maximum redirects,int
类型必须是非zero正值,可以是1
请求用户代理
用户代理,str
类型,可以是空字符串,建议为空字符串,可以是"
示例:
$ exporthttps_proxy="http://yourProxyUrl:8080" $ exportrequests_maxredirects="42" $ # This is the Bash command line terminal!.
- 这是100%可选的。这是作为附加功能提供的。
- 你的想法、灵感、理由等是什么?
您可以随意使用这个开源软件进行分叉、克隆、下载、改进、重新实现和播放。使它快10倍,小10倍。
- 这和ssl一起工作?
- 这在没有ssl的情况下有效吗?
- 这需要cython?
< /P>
- 这是Pypy的吗?
< /P>
- 这是在蟒蛇身上跑的?
- 这是32位的?
< /P>
- 这是和叮当一起跑的吗?
< /P>
- 如何安装?
是的。
(zip,因为github将repo标记为javascript) https://github.com/juancarlospaco/faster-than-requests/issues 或 代理的标准Linux Bash环境变量。 它将自动从环境变量中读取。 https://github.com/ndjson/ndjson规范 我不知道。 由于速度性能的原因, 可能它在32位上工作,但不受支持,整数太小,性能可能更差。 也许它可以在Python2上工作,但不受支持,而且性能可能更差,我们建议迁移到Python3。 函数没有内部的try:except:pip安装速度快于u请求
块,
因此,如果您需要非常有弹性的代码,可以将它们包装在url="http://example.com"
(始终为第一个参数)。http_method="get"
获取。http_method="post"
用于post。http_method="put"
用于放置。http_method="patch"
用于修补程序。body="我的身体"
导出https_proxy="http://yourproxyurl:8080"
导出http_proxy="http://yourproxyurl:8080"
dict
比tuple
更慢、更大、更重和可变。
try:except:
块上包装函数吗?try:except:
块中。
- pip无法安装或无法构建轮子?
在pip install命令末尾添加:
--隔离--禁用PIP版本检查--无缓存目录--无二进制:全部:
不是我的错误。
- 如何建设这个项目?
build.sh
- 如何包装项目?
包.sh