ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2020-12-19 16:04:51  阅读:212  来源: 互联网

标签:http get python fast headers urls requests Response


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)

标签:http,get,python,fast,headers,urls,requests,Response
来源: https://www.cnblogs.com/xiaojuntest/p/14159446.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有