HTTP状态代码的多线程脚本

时间:2018-11-05 12:56:44

标签: python multithreading curl http-status

嗨,Stackoverflow社区,

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

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

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

我想知道是否有人提供任何提示或有更高效的方法来做到这一点?

2 个答案:

答案 0 :(得分:1)

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

  

webchk是Python 3中开发的命令行工具,用于检查HTTP状态代码和URL的响应标头

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

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

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

答案 1 :(得分:0)

如果您正在寻找使用Python进行HTTP请求的并行性和多线程方法,则可以从aiohttp库开始,或使用流行的requests包。可以使用标准库中的multiprocessing完成多线程处理。

以下是与aiohttp客户端进行限速的讨论:aiohttp: rate limiting parallel requests

这里是有关使用requests https://stackoverflow.com/a/27547938/10553976

进行多处理的讨论

使其表现出色取决于您的实现。确保描述您的尝试并与您当前的实现进行比较。