我创建了一个打开多个网址的网页抓取程序,它会检查哪个网址包含与"明天" s日期相关的信息,然后打印该网址上的某些特定信息。我的问题是,有时该列表中的所有URL都没有关于"明天"的信息。所以我想在这种情况下,该程序打印其他信息,如"没有找到数据"。我怎么能做到这一点?我有其他疑问,我在开始时需要while循环吗?感谢。
我的代码是:
from datetime import datetime, timedelta
tomorrow = datetime.now() + timedelta(days=1)
tomorrow = tomorrow.strftime('%d-%m-%Y')
day = ""
while day != tomorrow:
for url in list_urls:
browser.get(url)
time.sleep(1)
dia_page = browser.find_element_by_xpath("//*[@id='item2']/b").text
dia_page = dia_page[-10:]
day_uns = datetime.strptime(dia_page, "%d-%m-%Y")
day = day_uns.strftime('%d-%m-%Y')
if day == tomorrow:
meals = browser.find_elements_by_xpath("//*[@id='item2']/span")
meal_reg = browser.find_element_by_xpath("//*[@id='item_frm']/span[1]").text
sopa2 = (meals[0].text)
refeicao2 = (meals[1].text)
sobremesa2 = (meals[2].text)
print(meal_reg)
print(sopa2)
print(refeicao2)
print(sobremesa2)
break
答案 0 :(得分:2)
不需要while
循环,您可以使用for-else Python构造:
for url in list_urls:
# do stuff
if day == tomorrow:
# do and print stuff
break
else: # break never encountered
print("no data found")