处理无法打开的 url,使用 urllib 进行错误处理

Handling a url which fails to open, error handling using urllib

我想要一些关于如何处理无法打开的 url 的帮助,目前整个程序在无法打开 url 时被中断( tree = ET.parse (opener.open(input_url)) )...

如果在我的第一个函数调用 (motgift) 中打开 url 失败,我希望它等待 10 秒,然后再次尝试打开 url,如果它再次失败我希望我的脚本继续下一个函数调用(观察者)。

def spider_xml(input_url, extract_function, input_xpath, pipeline, object_table, object_model):

        opener = urllib.request.build_opener()
        tree = ET.parse(opener.open(input_url))
        print(object_table)

        for element in tree.xpath(input_xpath):

            pipeline.process_item(extract_function(element), object_model)


motgift = spider_xml(motgift_url, extract_xml_item, motgift_xpath, motgift_pipeline, motgift_table, motgift_model)
observer = spider_xml(observer_url, extract_xml_item, observer_xpath, observer_pipeline, observer_table, observer_model)



将非常高兴并感谢有关如何实现这一目标的示例。

try:
    resp = opener.open(input_url)
except Exception:
    time.sleep(10)
    try:
        resp = opener.open(input_url)
    except Exception:
        pass

你在找这个吗?

Try Except 块是否有效?

error = 0
while error < 2:
  try:
    motgift = spider_xml(motgift_url, extract_xml_item, motgift_xpath,   motgift_pipeline, motgift_table, motgift_model
    break
  except:
    error += 1
    sleep(10)