python - requests.exceptions.ConnectionError : ('Connection aborted.' , gaierror(8, 'nodename nor servname provided, or not known' ))

标签 python python-3.x python-requests

我正在尝试检查包含将返回响应状态代码 200 的 url 的文件。我正在使用 python 3.7.1 下面是我用过的代码

import requests
import sys
url_list = sys.argv[1]
with open(url_list) as fp:
    for line in fp:
        response = requests.get(line)
        if (response.status_code == '200'):
            print ("%s is up "%line)
        print (response.status_code)

以上代码触发错误

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 544, in urlopen
    body=body, headers=headers)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 341, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 761, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connection.py", line 204, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connection.py", line 134, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/util/connection.py", line 64, in create_connection
    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 8] nodename nor servname provided, or not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 370, in send
    timeout=timeout
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 597, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/util/retry.py", line 245, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/packages/six.py", line 309, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 544, in urlopen
    body=body, headers=headers)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 341, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connectionpool.py", line 761, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connection.py", line 204, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/connection.py", line 134, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/usr/local/lib/python3.7/site-packages/requests/packages/urllib3/util/connection.py", line 64, in create_connection
    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
  File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', gaierror(8, 'nodename nor servname provided, or not known'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "live.py", line 7, in <module>
    response = requests.get(line)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 69, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 415, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', gaierror(8, 'nodename nor servname provided, or not known'))

用于 txt 的文件的 URL

当直接使用 requests.get("https://www.instagram.com") 测试时,上述 url 给出了所需的输出。

最佳答案

您应该从字符串中删除结尾的换行符:

import requests
import sys

url_list = sys.argv[1]
with open(url_list, 'r') as fp:
    for line in fp:
        url = line.rstrip()
        response = requests.get(url)
        if (response.status_code == 200):
            print ("%s is up " % url)
        print (response.status_code)

关于python - requests.exceptions.ConnectionError : ('Connection aborted.' , gaierror(8, 'nodename nor servname provided, or not known' )),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690498/

相关文章:

python 正则表达式 - 识别具有超过 N 个非字母数字的字符串

python - 如何检查响应是否是 Flask 中的文件?

Python 从网站上抓取 PDF 文件 为什么它们都已损坏且大小相同?

python-3.x - 有没有更简单的方法来提取字典的最后一个值?

python - 无法将 Epoch 值转换为人类可读的日期格式 python

python - 如何在请求 session 期间注销网站

Python 请求 - ChunkedEncodingError(e) - requests.iter_lines

python - 当反转从 int 转换而来的字符串时,不会打印结尾的 0

python - OpenCV 和 Python - 图像太大而无法显示

python - 在 Windows 10 中为 python 安装 mysqlclient 时出错