HTTP 状态代码的多线程脚本

Multi threading script for HTTP status codes

嗨,Whosebug 社区,

我想创建一个脚本,该脚本使用多线程在 URL 的大型列表(超过 30k 个虚拟主机)上为 HTTP 状态代码创建大量并行请求。

可以从托管网站的同一台服务器执行请求。

我使用的是多线程 curl 请求,但我对得到的结果并不十分满意。完整检查 3 万台主机需要一个多小时。

我想知道是否有人有任何提示或有更高效的方法吗?

如果您正在寻找并行和多线程方法来使用 Python 发出 HTTP 请求,那么您可以从 aiohttp 库开始,或者使用流行的 requests包裹。多线程可以通过标准库中的 multiprocessing 实现。

这里是关于 aiohttp 客户端速率限制的讨论:

这里讨论了如何使用 requests

进行多处理

使其具有高性能是您实施的问题。请务必分析您的尝试并与您当前的实施进行比较。

在测试了一些可用的解决方案之后,最简单和最快的方法是使用 webchk

webchk is a command-line tool developed in Python 3 for checking the HTTP status codes and response headers of URLs

速度令人印象深刻,输出很干净,它在大约 2 分钟内解析了 30k 个虚拟主机

https://webchk.readthedocs.io/en/latest/index.html

https://pypi.org/project/webchk/