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

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

  • 首先是从之前处理好的域名数据集中读取域名
  • 其次循环挨个处理
  • 做好异常处理
    在这里插入图片描述
    但是结果显然不尽如人意,但是当你手动将单个域名,放进去解析,是没有问题的。
    然后我就蒙了,后来经过一圈的查阅资源,试了挺多的手段,后来看到这样的一段话
    在这里插入图片描述
    I think the problem is a newline at the end of server_name.
    也就是说在我读取的每一行的域名后面是有一个换行符的。
  • 接下来 就是去掉它 ‘\n’
    like is
    在这里插入图片描述
    解释一下,这里去掉换行符的方式有两种:
    • 用.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
  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值