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

时间:2015-02-16 18:54:17

标签: python python-3.x 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)



会非常高兴并欣赏如何实现这一目标的一个例子。

2 个答案:

答案 0 :(得分:0)

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

你在找这个吗?

答案 1 :(得分:0)

Try Trycept块是否有效?

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)