這可能是最快的python http請求庫(類似於requests)


fast_requests

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

介紹

用c++寫的python庫,真多線程多並發,性能超強,多線程下載二進制的文件效果最佳
這可能是最快的http請求庫,暫支持get方法,線程多的話寬帶可以跑滿。
項目地址:

測試: 循環get("https://baidu.com") 100 次
1.自己寫的 3.4 秒
2.requests (啟用session)10.5 秒
3.grequests 31.3 秒
循環get("") 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
下載鏈接:

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("")

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

print(i.text)

 

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

print(i.text)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM