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

使用BeautifulSoup4爬取页面时如何提取HTML列表内的指定文本

问题原因

  • .string失效:当标签下存在多个子节点(你的a标签同时包含文本节点Click Me!!!和子<font>标签)时,.string无法匹配唯一文本节点,会返回None。
  • get_text()不符合需求:该方法会拼接标签内所有子孙节点的文本,最终返回Click Me!!!34344,包含了你不需要的font标签内的数字内容。

可行解决方法

你可以用以下两种方法直接提取a标签的第一个直接文本节点内容:

方法1:通过contents属性取首个子节点

contents会返回标签所有直接子节点的列表,你的场景下第一个元素就是目标文本节点:

# 假设你通过find_all拿到的a标签列表为a_tag_list
for a_tag in a_tag_list:
    target_text = a_tag.contents[0].strip()
    # 后续处理逻辑
    print(target_text)

方法2:用find匹配首个直接文本节点

指定recursive=False只查找直接子节点,避免误取到font标签内的文本:

for a_tag in a_tag_list:
    target_text = a_tag.find(string=True, recursive=False).strip()
    print(target_text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:27:03