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.pyd
、fast_requests.py
、libcurl.dll
、zlibd1.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)