我正在使用BeautifulSoup来解析html,我经常通过以下代码找到自己:
result.find("some_tag").attrs['some_attribute']
验证find方法是否没有返回None以及检查在没有嵌套“if”语句的属性中是否存在这样的键的正确方法是什么?
感谢
答案 0 :(得分:1)
一行回答:
attr_val = result.find('some_tag').attrs.get('some_attr', None) if result.find('some_tag') else None
我使用get
dict的attrs
方法获取值,如果它存在,否则为None。
答案 1 :(得分:0)
如果result.find()
返回None
,如果有some_attribute
,我会将其拆分为2次检查。
find_result = result.find("some_tag")
if find_result:
try:
find_result.attrs["some_attribute"]
except KeyError as e:
print("some_attribute not found!")