限制 Python 上每秒的 HTTP 请求数

2024-06-30

我编写了一个脚本,用于从文件中获取 URL 并同时向所有 URL 发送 HTTP 请求。我现在想限制每秒 HTTP 请求数和每个接口的带宽(eth0, eth1等)在会话中。有什么办法可以在Python上实现这一点吗?


您可以使用 Semaphore 对象,它是标准 Python 库的一部分:蟒蛇文档 https://docs.python.org/2/library/threading.html#semaphore-objects

或者,如果您想直接使用线程,可以使用 wait([timeout])。

没有与 Python 捆绑在一起的可以在以太网或其他网络接口上工作的库。最低的可以是套接字。

根据您的回复,这是我的建议。注意 active_count。仅使用它来测试您的脚本是否只运行两个线程。在这种情况下,它们将是三个,因为第一个是您的脚本,然后您有两个 URL 请求。

import time
import requests
import threading

# Limit the number of threads.
pool = threading.BoundedSemaphore(2)

def worker(u):
    # Request passed URL.
    r = requests.get(u)
    print r.status_code
    # Release lock for other threads.
    pool.release()
    # Show the number of active threads.
    print threading.active_count()

def req():
    # Get URLs from a text file, remove white space.
    urls = [url.strip() for url in open('urllist.txt')]
    for u in urls:
        # Thread pool.
        # Blocks other threads (more than the set limit).
        pool.acquire(blocking=True)
        # Create a new thread.
        # Pass each URL (i.e. u parameter) to the worker function.
        t = threading.Thread(target=worker, args=(u, ))
        # Start the newly create thread.
        t.start()

req()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

限制 Python 上每秒的 HTTP 请求数 的相关文章

  • 设置ntlk代理

    我正在关注第一章NLTK书 http www nltk org book ch01 html frequency distributions 它要求我们通过运行来安装图书语料库nltk dowwnload 我正进入 状态getattrinf
  • 贝塞尔曲线python的递归函数

    我被要求设计一个名为 Bezier 的递归函数 其参数是给定点的列表 以及必须评估的点 它返回贝塞尔曲线中由点列表的控制点定义的点 这是我所做的算法 def Bezier point list t if len point list 1 r
  • pandas 支持 DataFrame 的哪些绘图后端?

    pandas 确实允许与第三方一起绘图绘制后端 https pandas pydata org pandas docs stable development extending html plotting backends 我知道matpl
  • 如何使用 TfIdfVectorizer 通过 SciKitLearn 对文档进行分类?

    以下示例展示了如何使用 Sklearn 20 新闻组数据训练分类器 gt gt gt from sklearn feature extraction text import TfidfVectorizer gt gt gt categori
  • 如何使用判别函数绘制 3 个类别之间的决策边界

    我有 3 个判别函数 将 2D 空间划分为 3 个区域 我想绘制这些区域之间的决策边界 我不知道如何在 python 中使用 matplotlib meshgrid 来做到这一点 对于2个判别函数 过程很简单 我计算值为 0 的函数和等高线
  • 调用exe中定义的函数

    我需要知道一种从 python 脚本调用 exe 中定义的函数的方法 我知道如何从 py 文件调用整个 exe 除非您的 EXE 是 COM 对象 或者像 dll 那样专门导出某些函数 否则这是不可能的 对于 COM 方法 请查看以下资源
  • 在 Python 中获取连接的 VPN 名称

    我正在尝试检索已连接的 VPN 的名称 我运行的是 Fedora 23 因此连接在 etc NetworkManager system connections 中得到了很好的枚举 其中一个文件列出了 VPN 配置的每个参数 包括我要查找的
  • PyCharm 项目文件消失了

    我当时正在做一个 python 项目JetBrains PyCharm 2016 2 https www jetbrains com pycharm 在 Lubuntu 上 突然之间 我的所有项目文件都从 IDE 中消失了 我尝试了以下方法
  • TypedDict 中的 Python 任意键

    是否可以使用一组已知键创建 TypedDict 然后创建任意键的类型 例如 在 TypeScript 中 我可以这样做 interface Sample x boolean y number name string string Pytho
  • 如何在 Anaconda(Jupyter 笔记本)中导入 python 自定义类

    我无法找到如何使用 anaconda 中的 Jupyter 笔记本在 Python 中导入自定义类 在我的工作文件夹中有一个文件 用户 ipynb 包含类名User 在同一文件夹中的其他文件中 我尝试使用以下命令导入此类 从用户导入用户 我
  • 从图像中读取文本

    关于将这些图像转换为文本有什么建议吗 我正在使用 pytesseract 除了这个之外 它在大多数情况下都工作得很好 理想情况下 我会准确地读取这些数字 最坏的情况我可以尝试使用 PIL 来确定 左边的数字是否为零 从左边开始 找到第一个白
  • ModuleNotFoundError:没有名为“discord_slash”的模块[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 I m trying to install a module called discord slash https py
  • 在窗口中定位画布 - Tkinter/python

    有没有办法将画布放置在窗口中并在其周围放置一个框架 我只找到了如何在画布内放置对象 您可以创建一个框架 然后将您的小部件放入其中 f tk Frame c1 tk Canvas f c2 tk Canvas f c1 pack side l
  • 多处理和美好价值

    有谁知道在多处理中创建进程或池时设置进程或池的良好值的简单方法 os nice increment Add increment to the process s niceness Return the new niceness Availa
  • 限制 JavaScript 函数调用,但进行排队(不丢弃调用)

    函数如何限制其调用速率 如果调用过于频繁 则不应丢弃 而应排队并及时间隔开 相隔 X 毫秒 我看过throttle http drupalmotion com article debounce and throttle visual exp
  • 如何在python中查找文件的mime类型?

    假设您想要将一堆文件保存在某个地方 例如保存在 BLOB 中 假设您想通过网页分发这些文件 并让客户端自动打开正确的应用程序 查看器 假设 浏览器通过 HTTP 响应中的 mime type 内容类型 标头确定要使用哪个应用程序 查看器 基
  • 如何获取Python日志模块当前正在记录的文件?

    有没有办法做到这一点 如果logging config fileConfig some log 是setter 什么是getter 只是好奇这是否存在 对于我对单个文件日志的基本用法 这有效 logging getLoggerClass r
  • 在heroku上安装pdftotext库

    pdftotext 库是requirements txt 中的要求 在尝试推送到 heroku 时 出现以下错误 remote Running setup py install for pdftotext started remote Ru
  • 使用 plt 在热图上绘制梯度箭头

    我正在尝试绘制箭头以可视化热图上的梯度 这是我到目前为止的代码 import matplotlib pyplot as plt import numpy as np function to plot lambda x y x y 2 hor
  • SQLalchemy“load_only”不只加载指定的列

    我正在尝试从带有 sqlalchemy 的表中选择列的子集load only功能 不幸的是 它似乎不仅仅返回函数调用中指定的列 具体来说 它似乎还获取主键 在我的例子中 是一个 auto increment id 字段 一个简单的例子 如果

随机推荐

  • MySQL:不喜欢

    我的数据库中有这些文本 categories posts categories news posts add news add 我不想选择带有categories 我使用这样的查询 SELECT FROM developer configu
  • 无法构建 lldb - 找不到“原子”文件

    我正在尝试建立lldb这是 Clang LLVM 3 4 2 下载的一部分LLVM 下载页面 http llvm org releases download html 我可以构建 LLVM Clang Compiler RT 和 Extra
  • 在 PowerShell 中按列拆分文本

    我是一个 PowerShell 新手 通常是 Bash 目前正在尝试获取 qwinsta 输出以显示谁以 rdpwd rdesktop 用户身份登录 以便我可以根据用户名列表检查每个用户名 如果它们不匹配 请将其注销 我目前正在解决两个问题
  • 如何使用 IComparable 接口?

    我需要一个如何使用的基本示例IComparable接口 以便我可以按升序或降序以及要排序的对象类型的不同字段进行排序 好吧 既然你正在使用List
  • 使用 LINQ 计算两个字符串之间的匹配字符数

    一位朋友问我如何使用 LINQ 改进一些代码 如何在两个字符串之间进行逐字符比较以计算索引处的匹配数 这是原始代码 可以使用 LINQ 对其进行改进吗 private int Fitness string individual string
  • Typescript:如何在构造函数之外初始化类属性

    我有一个场景 我需要在构造函数之外初始化类属性 考虑以下示例 class A public prop MyPropType public id string public constructor id string this id id p
  • Laravel 4:如果通过查询关系存在关系,则选择行

    我正在尝试查询产品表 并希望它在存在关系时返回一个集合 迭代1以下查询all产品表中的行 如果满足以下条件则延迟加载金属表 name火柴 这是错误的 我的路线 Route group array prefix gt api v1 funct
  • VB.NET 本地化

    我怎样才能用不同的语言制作我的应用程序 以便人们可以选择另一种语言 我需要翻译一些按钮 文本框和标签 有一个简单的方法吗 您需要外部化字符串资源 如果您希望仅本地化表单元素 则可以直接在 Visual Studio 内的 WinForms
  • 如何在 Firefox 的网络扩展中创建本机外观的弹出窗口?

    我想要在 Firefox Web 扩展中提供原生外观的弹出窗口 菜单 例子 我现在拥有的 不相关部分省略 清单 json browser action browser style true injects chrome browser co
  • 使用 Visual Studio 确定堆栈空间

    我正在 Visual Studio 2005 中使用 C 进行编程 我有一个多线程程序 但这在这里并不是特别重要 如何确定 大约 我的线程使用了多少堆栈空间 我计划使用的技术是将堆栈内存设置为某个预定值 例如 0xDEADBEEF 长时间运
  • 计算机如何区分二进制字母和数字?

    我只是好奇因为 65 与字母 A 相同 如果这是错误的堆栈 抱歉 65和字母A一样 你说的是真的 但不说更多的话并没有多大用处 没有文本 只有编码文本 没有数字 只有编码的数字 对于 CPU 来说 某些数字编码是本机的 其他一切都只是未区分
  • nhibernate 中的多个唯一键

    我需要通过以下方式创建约束 CONSTRAINT IX Unique 1 UNIQUE NONCLUSTERED Ordering ASC Description ASC CONSTRAINT IX Unique 2 UNIQUE NONC
  • Android SQLite 数据库 blob 数据类型

    我想将图像保存在数据库中 但我不确定一件事 我在扩展 SQLiteOpenHelper 的类上有这个方法 public boolean insertDemo byte a byte b byte c byte d SQLiteDatabas
  • 如何在 IIS 7 上的经典 ASP 中启用大文件上传?

    最近 我必须让一个旧的 ASP 应用程序在 W2K8 服务器上的 IIS 7 5 中运行 几乎一切都工作正常 除了我似乎无法让它接受大于 200kB 的上传 我确实找到了一个设置 从我能理解的应该到技巧 在 applicationHost
  • 获取 C# 字符串的非第一个段的快速而巧妙的方法

    I do a split 在一个字符串上 我想拉出返回字符串的第一个元素以获得字符串的其余部分 f e THIS IS AN AMAZING STRING split 我想要得到除了这个之外的所有单词 这是 是一根神奇的绳子 该字符串在第一
  • 如果值不为空,则更新数据库的 SQL 查询?

    我有一个大约有 17 个字段的表 我需要在此表中执行频繁更新 但问题是每次我可能只更新几个字段 在这种情况下编写更新查询的最佳方法是什么 我正在寻找一个选项 其中仅当值不为空时才会更新 例如 我在数据库中有四个字段 A B C D 用户更新
  • 如何使用 AutofacContrib.NSubstitute 监视被测类

    我正在使用 NSpec 框架 AutofacContrib NSubstitute v3 3 2 0 NSubstitute v1 7 0 0 目前最新的是 1 8 2 的类库项目中运行单元测试 The 被测类实例是用AutoSubstit
  • ASP.NET MVC:使用 SendAsync (System.Net.Mail) 发送电子邮件

    有什么办法吗in MVC让 System Net Mail SendAsync 工作 而不是阻止 Send 方法 我尝试使用它 但遇到了 启动异步操作的页面必须具有异步属性 错误 我显然无法解决该问题 或者可以吗 因为没有带有 Page 指
  • 更新/安装最新的 Flutter 软件包 (pubspec.yaml)

    我想在我的 android studio 项目中安装最新的 Flutter 包 In npm npm install
  • 限制 Python 上每秒的 HTTP 请求数

    我编写了一个脚本 用于从文件中获取 URL 并同时向所有 URL 发送 HTTP 请求 我现在想限制每秒 HTTP 请求数和每个接口的带宽 eth0 eth1等 在会话中 有什么办法可以在Python上实现这一点吗 您可以使用 Semaph