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

使用BeautifulSoup的select方法匹配类与元素时出错求助

解决BeautifulSoup选择器匹配类下指定元素的问题

首先,咱们先揪出你代码里的关键问题:你写的.tr是类选择器,它会匹配class="tr"的元素,但你实际要找的是HTML里的<tr>标签对吧?所以这里应该去掉点,直接写tr(标签选择器)。

修正后的代码示例

假设你的目标结构是「class为someclass的元素下的<tr>标签直接包含<title>元素」,修正后的代码应该是:

drastiriotita_kounoupion = [po.get_text("|", strip=True) for po in four_days.select(".someclass tr > title")]

不同结构的适配技巧

如果<title>不是<tr>的直接子元素(比如中间还有<td>标签),就把直接子元素选择器>换成空格(后代选择器),这样能匹配所有嵌套在<tr>里的<title>:

drastiriotita_kounoupion = [po.get_text("|", strip=True) for po in four_days.select(".someclass tr title")]

排查小技巧

要是还是拿不准选择器对不对,用浏览器的开发者工具(F12)右键目标<title>元素选「检查」,看它的层级路径:

  • 比如实际结构是<div class="someclass"><tr><td><title>...</title></td></tr></div>,那选择器就写成.someclass tr td title

另外,如果select()返回空列表,你可以分步排查:

  1. 先打印four_days.select(".someclass")看看有没有找到目标父元素
  2. 再打印four_days.select(".someclass tr")确认<tr>标签是否被匹配到
  3. 最后加上<title>的选择器,逐步缩小范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:23:56