You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python bs4解析HTML时如何获取a标签文本解决属性错误

报错原因

soup.find_all('a') 返回的是存储了所有匹配到的<a>标签对象的结果列表,列表类型本身没有.text属性,直接调用就会抛出属性错误。只有单个标签元素对象才支持通过.text属性获取内部文本。
另外你给出的示例HTML里第一个a标签的闭合标签误写为</;/a>,属于语法错误,不过html.parser自带容错机制,会自动修正这个问题,不会干扰文本提取结果。

正确提取方式

遍历find_all返回的结果列表,对每个单独的a标签对象调用.text提取文本即可,修正后的可运行代码如下:

from bs4 import BeautifulSoup

with open('basic.html', 'r') as f:
    contents = f.read()
    soup = BeautifulSoup(contents, "html.parser")
    
    # 遍历所有匹配到的a标签,逐个提取文本存入列表
    a_content_list = [tag.text for tag in soup.find_all('a')]
    print(a_content_list)

运行上述代码会输出你需要的结果:

['Face book', 'Google']

如果需要把所有a标签的文本合并为单个字符串,可以直接对列表做join处理:

merged_text = '、'.join(a_content_list)
# 得到结果:'Face book、Google'

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:03:21