【发布时间】:2020-05-30 19:17:08
【问题描述】:
我正在尝试网页抓取。
使用 BeautifulSoup,我正在解析几个对象并遇到一个问题。
问题是,我无法使用“查找”方法预测错误发生的位置。
看起来像
a = soup.find(something).find(something)
b = soup.find(something)
...
f = soup.find(something).find(something)
在a、b、c、d、e、f中,错误可能发生在任何地方,不应修改其代码。
变量'b'无关紧要,因为它是None,没关系。
但变量 'a' 或 'f' 有问题,因为它会结束脚本。
我知道有“try-exception”语法,但这不是我想要的。 当然也可以这样写:
try :
a = soup.find(something).find(something)
except Exception:
a = None
...
try :
f = soup.find(something).find(something)
except Exception:
f = None
看起来很荒谬,不是吗?
我该如何优雅地处理它?
【问题讨论】:
-
问题是你链接了两个不能保证找到你需要的函数调用。我要做的是检查是否可以将
soup.find(something).find(something)合并到soup.find(something)。 -
@YacineMahdid 你是对的。但第二种“查找”方法没有区分的属性。也许我需要把它分成两个步骤。还是谢谢你
标签: python exception error-handling beautifulsoup