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

BeautifulSoup中CSS selector无法定位id为four_factors的table标签问题

问题原因

你要定位的id="four_factors"表格被包裹在HTML注释(<!-- -->)中,BeautifulSoup解析时默认会把注释内容标记为特殊注释节点,不会将其内部的标签识别为可查询的普通DOM元素,因此你通过标签选择器无法匹配到目标元素。而Python原生的字符串查找是直接匹配原始HTML文本,不受DOM结构解析规则限制,所以能找到对应字符串的位置。
你之前不加表格前缀的选择器返回的98,是页面非注释区域其他表格的同属性td值,并非你要的four_factors表格内的数据。

解决方案

先移除HTML中的注释标记,将注释内的表格转为普通DOM节点后再执行查询即可,示例修改代码如下:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re

url = "https://www.basketball-reference.com/boxscores/201510310MEM.html"
response = urlopen(url)
html = response.read().decode()

# 移除所有HTML注释标记
html = re.sub(r'<!--|-->', '', html)

soup = BeautifulSoup(html, 'html.parser')

# 此时选择器可正常返回结果
print(soup.select('table[id="four_factors"] tbody > tr > td[data-stat="off_rtg"]'))

运行后即可得到对应两个off_rtg节点的查询结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 05:54:02