嗨 Stackoverflow 社区,
我想创建一个脚本,该脚本使用多线程在大量 URL(超过 30k 个虚拟主机)上为 HTTP 状态代码创建大量并行请求。
可以从托管网站的同一服务器执行请求。
我正在使用多线程 curl 请求,但我对得到的结果并不满意。完整检查 30k 主机需要一个多小时。
我想知道是否有人有任何提示或是否有更高效的方法来做到这一点?
嗨 Stackoverflow 社区,
我想创建一个脚本,该脚本使用多线程在大量 URL(超过 30k 个虚拟主机)上为 HTTP 状态代码创建大量并行请求。
可以从托管网站的同一服务器执行请求。
我正在使用多线程 curl 请求,但我对得到的结果并不满意。完整检查 30k 主机需要一个多小时。
我想知道是否有人有任何提示或是否有更高效的方法来做到这一点?
在测试了一些可用的解决方案之后,最简单最快的方法是使用 webchk
webchk 是使用 Python 3 开发的命令行工具,用于检查 URL 的 HTTP 状态代码和响应标头
速度令人印象深刻,输出很干净,它在大约 2 分钟内解析了 30k 个虚拟主机
如果您正在寻找使用 Python 发出 HTTP 请求的并行性和多线程方法,那么您可以从该aiohttp
库开始,或者使用流行的requests
包。多线程可以通过multiprocessing
标准库中的 , 来完成。
下面是关于使用 aiohttp 客户端进行速率限制的讨论:aiohttp:速率限制并行请求
这是关于使用https://stackoverflow.com/a/27547938/10553976进行多处理的讨论requests
使其高性能是您实施的问题。请务必记录您的尝试并与您当前的实施进行比较。