Python socket模块批量解析域名时,如何跳过无效URL继续执行?
解决Python DNS解析时跳过无效URL的问题
当遇到无效域名时,socket.gethostbyname()和socket.getfqdn()会抛出socket.gaierror异常,导致程序中断。要跳过这类无效条目继续处理后续内容,只需在循环中加入异常捕获机制即可。
修改后的代码示例:
import socket domain_list = ["www.google.com", "www.biiiiinnnnggggg.com", "www.microsoft.com"] for domain in domain_list: try: # 尝试解析IP和FQDN ip = socket.gethostbyname(domain) fqdn = socket.getfqdn(domain) print(f"域名: {domain}") print(f"IP地址: {ip}") print(f"完全限定域名: {fqdn}\n") except socket.gaierror: # 捕获解析失败的异常,跳过当前无效域名 print(f"无效域名,跳过: {domain}\n")
关键说明
- 使用
try-except包裹解析逻辑,捕获socket.gaierror异常(这是DNS解析失败时抛出的特定异常) - 在
except块中可以根据需求记录错误信息,或者直接静默跳过 - 异常处理后,循环会自动继续处理列表中的下一个条目
内容的提问来源于stack exchange,提问作者user20556004
相关产品推荐
相关产品推荐

