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

BeautifulSoup使用find(text=...)仅返回文本而非标签的问题求助

解决爬虫find方法仅返回文本而非标签的问题
  • 问题根源:find(text="xxx") 本身就是用来查找文本节点的,返回的是NavigableString对象而非包含该文本的标签元素。之前可能因网站结构嵌套或旧版BeautifulSoup的隐性行为巧合拿到了标签,但这不属于标准用法。

  • 解决方案:要获取包含目标文本的<td>标签,直接指定标签名并匹配文本内容:

修改问题代码行:

cost_of_gas_gj = rate_2_table.find("td", string="Cost of gas per GJ")

如果目标文本存在细微空格、换行或格式差异,可使用正则表达式增强匹配灵活性:

import re
cost_of_gas_gj = rate_2_table.find("td", string=re.compile(r"Cost of gas per GJ"))
  • 效果验证:修改后执行代码,cost_of_gas_gj会返回完整的<td width="70%">Cost of gas per GJ</td>标签元素,可正常提取其属性或后续关联内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:30:44