解决 socket.gaierror: [Errno 11001] getaddrinfo failed

因为在做一些网页数据集的处理,需要解析域名,整理Ip,故用到了,
Socket.getaddrinfo,

  • 首先是从之前处理好的域名数据集中读取域名
  • 其次循环挨个处理
  • 做好异常处理
    解决 socket.gaierror: [Errno 11001] getaddrinfo failed_第1张图片
    但是结果显然不尽如人意,但是当你手动将单个域名,放进去解析,是没有问题的。
    然后我就蒙了,后来经过一圈的查阅资源,试了挺多的手段,后来看到这样的一段话
    解决 socket.gaierror: [Errno 11001] getaddrinfo failed_第2张图片
    I think the problem is a newline at the end of server_name.
    也就是说在我读取的每一行的域名后面是有一个换行符的。
  • 接下来 就是去掉它 ‘\n’
    like is
    解决 socket.gaierror: [Errno 11001] getaddrinfo failed_第3张图片
    解释一下,这里去掉换行符的方式有两种:
    • 用.sprip(’\n’)
    • [:-1] (因为换行符总是在最后一个字符)

希望可以帮到大家,顺利即时解决问题。

def get_dns():
    domains = DataDispose.get_domain_list()
    for domain in domains:
        try:
            myaddr = socket.getaddrinfo(domain[:-1], 'http')
            print(myaddr)
        except Exception as e:
            print(e)
            continue

你可能感兴趣的:(Python:从入门到放弃)