随机" [Errno -2]名称或服务未知"错误

时间:2013-11-28 11:27:57

标签: python django networking urllib

我使用第三方服务填充本地数据库。我有一个网址列表(大约500)。我在循环中调用每个url,并使用返回的数据更新我的数据库。代码流如下所示:

for url in urllist:
    req = urllib.urlopen(url)
    data = json.loads(req.read())
    req.close()

    #update the db using data here

每当我运行这段代码时,脚本会在随机点失败,并显示错误消息“名称或服务未知”。这与url没有任何关系,因为脚本在随机点失败(即在一次运行中第50次迭代,在另一次运行中第60次迭代)

这可能是什么原因?

1 个答案:

答案 0 :(得分:4)

如果您使用错误的代理或存在网络问题,您可以尝试这样做:

for url in urllist:
    retry = 0
    while True: # retry request
        try:
            req = urllib.urlopen(url)
            resp_data = req.read() # in call read() network still processing
        except Exception as e: # TODO need more detailed handling
            if retry > 3: # 3 this is serious problem. exit
                raise e
            retry += 1 # retry
        else:
            data = json.loads()
            req.close() # not needed
            break