每秒向服务器发送大约5个请求。我需要每秒发送大约40个请求。服务器不限制我的请求(我已经运行了10个这个Python脚本的实例并且它已经运行了)并且我的互联网不限制请求。
这是我的代码,每秒限制我的请求。
是否可以让我的Python脚本发送更多请求?
答案 0 :(得分:1)
你可以/应该使用扭曲。基于twisted的treq
使它非常容易。因为它完全异步,所以请求数/秒数不会很高,比如1000甚至更多。
from treq import get
from twisted.internet import reactor
# This method is called whenever a response is recieved
def done(response):
if response.code == 200:
# do something with response
reactor.stop()
for i in range(100000):
get("http://www.somesite.com").addCallback(done)
reactor.run()
使用twisted的异步编程的学习曲线很高但最终会得到非常好的结果。如需进一步参考,请查看http://treq.readthedocs.io/en/latest/api.html
答案 1 :(得分:0)
我同意@anekix,使用twisted是最好的方法。
你需要知道一件事,你使用的方法有10000个HTTP请求,有开放文件描述符限制,在Linux中基本上设置为1000。 这意味着您只能拥有1000个并发TCP连接。但是,您可以从Linux
中的配置/etc/security/limits.conf
增加此值
答案 2 :(得分:-1)
为什么不使用Scapy数据包通过sendp(第2层)生成流量,它具有非常好的性能。生成不同的数据包也非常容易
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")