我想帮助处理一个无法打开的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)
会非常高兴并欣赏如何实现这一目标的一个例子。
答案 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)