如何解决如何忽略NameError并继续运行程序的其余部分?
我正在使用的代码偶尔会起作用,但是我一直需要一些东西来工作。我正在抓取的网站有时会显示信息,而其他时候却忽略了它,这就是为什么我在运行程序后收到错误消息。由于网站并不总是为某些事件发布时间,因此显然未定义“ event_time”。
我面临的问题是,with suppress(Exception):
有时有效,有时却无效。当网站未指定时间并且程序继续抓取网站的其余部分时,我可以添加些什么来跳过event_time?
event_name = s.select_one('.eventname').get_text(strip=True)
event_day = s.select_one('.date').text.strip()
event_month = s.select_one('.month').text.strip()
with suppress(Exception):
event_time = s.select_one('.time').text.strip()
event_info = s.select_one('.event-header').text.strip()
错误:
NameError
Traceback (most recent call last)
<ipython-input-49-45cf21eb3177> in <module>
22 print('Dia: ' + event_day)
23 print('Mes: ' + event_month)
---> 24 print('Hora: ' + event_time)
25 print('Descripción: ' + event_info)
26 print('-' * 80)
NameError: name 'event_time' is not defined
解决方法
而不是抑制异常
with suppress(Exception):
event_time = s.select_one('.time').text.strip()
抓住它并添加默认值
try:
event_time = s.select_con('.time').text.strip()
except Exception:
event_time = ''
捕获一般异常可以隐藏其他错误。最好找出可能发生的异常并将其捕获。
,您可以使用try-except语句来确保每次都捕获异常。
try:
event_time = s.select_con('.time').text.strip()
except NameError:
event_time = ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。