我试图用python编写一个脚本,将HTTPGET请求发送到自动生成的URL,并获取其响应代码和运行时间。URL不一定是有效的,也可以接受400个响应。脚本1.Py
import sys
import requests
str1="http://www.googl"
str3=".com"
str2='a'
for x in range(0, 8):
y = chr(ord(str2)+x)
str_s=str1+y+str3
r=requests.get(str_s)
print(str_s, r.status_code, r.elapsed.total_seconds())
错误:
文件"script1.py",第12行,inr=请求.get(str_s)文件"/usr/local/lib/python2.7/dist packages/requests/api.py",第72行,GET中返回请求("get",url,params=params,**kwargs)文件"/usr/local/lib/python2.7/dist packages/requests/api.py",第58行,请求中返回session.request(method=method,url=url,**kwargs)文件"/usr/local/lib/python2.7/dist packages/requests/sessions.py",第508行,请求中resp=self.send(准备,**发送Kwargs)文件"/usr/local/lib/python2.7/dist packages/requests/sessions.py",第618行,发送中R=适配器。发送(请求,**kwargs)文件"/usr/local/lib/python2.7/dist packages/requests/adapters.py",第508行,发送中引发连接错误(E,请求=请求)requests.exceptions.connectionerror:httpconnectionpool(host='www.googla.com',port=80):超过url://的最大重试次数(由new connectionerror(":无法建立新连接:[errno-2]名称或服务未知")。
我只想看看收到每个请求的响应所用的时间。
只需发送一个请求
响应代码无关紧要。
我想你想得到这样的东西:
import sys
import requests
str1="http://www.googl"
str3=".com"
str2='a'
for x in range(0, 8):
y = chr(ord(str2)+x)
str_s=str1+y+str3
print('Connecting to ' + str_s)
try:
r = requests.get(str_s)
print(str_s, r.status_code, r.elapsed.total_seconds())
except requests.ConnectionError as e:
print(" Failed to open url")
在这种情况下,使用try...except可以捕获get提出的异常,并以一种良好的方式处理它。
我还想看看接收400个错误代码所花费的时间。不只是200。
利用time.time()。
我想要的输出是400响应代码响应的响应时间。它可以在200响应代码下正常工作,但在400响应代码下,连接不会关闭,弹出上面显示的错误消息。我尝试过连接:close-in-get请求,r.close()接近循环的结尾。但还是没有运气!!