这可能是最快的python http请求库(类似于requests)

fast_requests

2020年4月29日16:16:03更新:

介绍

用c++写的python库,真多线程多并发,性能超强,多线程下载二进制的文件效果最佳
这可能是最快的http请求库,暂支持get方法,线程多的话宽带可以跑满。
项目地址:https://github.com/daimiaopeng/fast_requests

测试: 循环get("https://baidu.com") 100 次
1.自己写的 3.4 秒
2.requests (启用session)10.5 秒
3.grequests 31.3 秒
循环get("http://www.nbzhuti.cn/") 1000次
fast_requests 20线程 100M宽带 6.5秒

要求

windows平台和python3.7.2(其它版本未知)

使用

pip

pip install requests-cpp

手动下载

下载fast_requetst_cpp.pydfast_requests.pylibcurl.dllzlibd1.dll四个文件,在项目中导入fast_requests.py
下载链接:https://2020.lanzous.com/ic2k26h

api

#timeOut 单位为毫秒

get(urls, headers={}, nThread=5, isDebug=False, timeOut=3000, verifySsl=True)

 

sessionGet(urls, headers={}, nThread=5, isDebug=False, timeOut=3000, verifySsl=True)

 

#sessionGet和get的区别:sessionGet为每个线程持有一个session对象相当于requests的session,建议使用sessionGet速度更快

urls 请求的网址列表

headers 请求头

nThread 线程数(看自己设备配置,一般设20就差不多了)

isDebug 开启后会打印每个线程每个请求信息

timeOut 超时

verifySsl ssl验证

返回 Response 对象列表

 

Response 对象

 

Response.text 正文text文本

Response.status_code 状态码

Response.header

Response.content() 二进制数据

Response.Url url

Response.elapsed

Response.cookies

Response.error 暂且用不了

 

示例代码:

import fast_requests

urls = []

headers = {

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36"

}

for i in range(1, 200):

urls.append("https://www.testyuming.com/")

for i in fast_requests.get(urls, headers, 20):

print(i.text)

 

for i in fast_requests.sessionGet(urls, headers, 20):

print(i.text)

上一篇:C++设计模式系列


下一篇:【Zookeeper】源码分析之持久化--FileSnap