我目前正在为我的网络抓取程序运行一个循环。如果遇到错误(即无法加载页面),我将其设置为忽略它并继续循环。
for i in links:
try:
driver.get(i);
d = driver.find_elements_by_xpath('//p[@class = "list-details__item__date"]')
s = driver.find_elements_by_xpath('//p[@class = "list-details__item__score"]')
m = driver.find_elements_by_xpath('//span[@class="list-breadcrumb__item__in"]')
o = driver.find_elements_by_xpath('//tr[@data-bid]');
l = len(o)
lm= len(m)
for i in range(l):
a = o[i].text
for i in range(lm):
b = m[i].text
c = s[i].text
e = d[i].text
odds.append((a,b,c,e))
except:
pass
但是,我现在希望在遇到错误时有某种注释,以便我可以查看未加载的页面。即使在输出表中将它们留为空白,也可以。
感谢您的帮助。
答案 0 :(得分:0)
您可以为异常添加一个捕获,然后对该捕获执行某些操作。这应该适合您的脚本。
import ... (This is where your initial imports are)
import io
import trackback
for i in links:
try:
driver.get(i);
d = driver.find_elements_by_xpath('//p[@class = "list-details__item__date"]')
s = driver.find_elements_by_xpath('//p[@class = "list-details__item__score"]')
m = driver.find_elements_by_xpath('//span[@class="list-breadcrumb__item__in"]')
o = driver.find_elements_by_xpath('//tr[@data-bid]');
l = len(o)
lm= len(m)
for i in range(l):
a = o[i].text
for i in range(lm):
b = m[i].text
c = s[i].text
e = d[i].text
odds.append((a,b,c,e))
except Exception as error_script:
print(traceback.format_exc())
odds.append('Error count not add')
基本上,发生的是您使用exception Exception as error_script: line. Afterwards , you can print the actual error message to the console using the
traceback.format_exc()命令捕获了异常。
但是最重要的是,您可以通过在异常捕获中传递append语句将字符串追加到列表中,并在异常末尾使用pass。 pass
将运行他捕获的代码,然后转到下一个迭代。