关于python:使用requests.get()时,URL错误超出了最大重试次数

Max retries exceeded with URL Error on using requests.get()

我试图用python编写一个脚本,将HTTPGET请求发送到自动生成的URL,并获取其响应代码和运行时间。URL不一定是有效的,也可以接受400个响应。

脚本1.Py

1
2
3
4
5
6
7
8
9
10
11
12
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]名称或服务未知")。

  • 我只想看看收到每个请求的响应所用的时间。
  • 只需发送一个请求
  • 响应代码无关紧要。

我想你想得到这样的东西:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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提出的异常,并以一种良好的方式处理它。