Python网页爬虫提取HTML标签文本遇AttributeError错误如何解决?
解决Python爬虫提取日期时的AttributeError问题
问题原因
item.find('span', {'class': 'POSITIVE'})返回了None,说明当前遍历的item节点中没有匹配到目标span标签,直接调用.text或.get_text()自然会触发AttributeError。
修改方案
先判断查找结果是否有效,再提取文本,避免空对象调用方法:
方法1:基础判断(适合新手理解)
# 先获取目标元素 date_element = item.find('span', {'class': 'POSITIVE'}) # 检查元素是否存在 if date_element: # 提取文本,strip=True去除前后空白 date_text = date_element.get_text(strip=True) # 将提取到的日期加入结果集合/列表 dates.add(date_text) # 如果你用set存储的话 else: # 没有找到标签时的处理,比如跳过或记录日志 print(f"当前item未找到目标日期标签")
方法2:简洁写法(Python 3.8+支持)
使用海象运算符简化判断逻辑:
if date_element := item.find('span', {'class': 'POSITIVE'}): dates.add(date_element.get_text(strip=True))
额外提示
- 优先用
.get_text()而非.text,前者可以通过strip=True自动清理文本前后的空格、换行符,更适合爬虫场景。 - 如果页面中有多个符合条件的标签,改用
find_all()遍历所有结果,再逐个提取文本。
内容的提问来源于stack exchange,提问作者Finnvader
相关产品推荐
相关产品推荐

