网页字段解析失败时如何将变量设为None?
解决方法:找不到元素时将字段设为None
你这段代码直接链式调用.text的问题在于:如果find()找不到目标<span>标签,会返回None,这时候再调用.text就会触发AttributeError报错。
可以用两种简单方式处理,让thesev在解析失败时自动设为None:
方式一:分步判断(推荐)
先获取元素对象,再判断是否存在:
sev_element = cve.find("span", class_="label-warning") thesev = sev_element.text if sev_element else None
方式二:捕获异常
通过try-except捕获找不到元素时的属性错误:
try: thesev = cve.find("span", class_="label-warning").text except AttributeError: thesev = None
第一种写法更直观,适合大多数网页解析场景;第二种可以覆盖更多潜在的属性异常情况(比如元素存在但无text属性的极端场景),按需选择即可。
内容的提问来源于stack exchange,提问作者Jshee
相关产品推荐
相关产品推荐

