如题,项目中使用了 Python 的 requests 库,但是在某些场景下(例如 低带宽模式,有两个并行的 requests http 请求,一个很重要,一个优先级低一些),需要对,多个 requests 请求中的一个进行限速处理 ...
V 友 有什么比较好的思路吗~
1
itskingname 2022-12-08 18:47:31 +08:00 1
requests 本身没有这个功能,但是你可以使用 walus 配合 Redis 实现。代码非常简单,就 3 行: https://walrus.readthedocs.io/en/latest/rate-limit.html
|
2
monetto OP |
3
edis0n0 2022-12-08 19:11:10 +08:00
@itskingname #1 有相同的需求,因为我的爬虫需要同时发几万个请求所以用的是效率更高的 aiohttp ,经常把服务器带宽跑满了,导致大量请求超时,想要实现根据服务器带宽和请求内容大小自动调整请求频率,也可以这么做吗
|
4
itskingname 2022-12-08 20:14:59 +08:00
@edis0n0 两个方案,使用 walus 是最简单的方案,只要 3 行代码。也有第二个方法,使用 asyncio 自带的 Semaphore
|
5
levenwindy 2022-12-10 18:46:08 +08:00 via Android
|