【发布时间】:2019-12-04 23:08:12
【问题描述】:
我正在尝试从篮球参考中提取篮球运动员的数据,以用于我正在进行的项目。在 B-R 上,一个播放器页面有多个数据表,我想获取所有数据。但是,当我尝试从页面中抓取表格时,它只会给我一个表格标签的第一个实例,即只有第一个表格。
我翻遍了html,发现在table标签的第一个实例之外,所有的table标签都在一个注释块下。当我解析他们的父标签并尝试搜索包含表信息的子标签时,它什么也不返回。 Here is a link to an example page,这是我的代码:
url = 'https://www.basketball-reference.com/players/j/jamesle01.html'
get = requests.get(url)
soup = BeautifulSoup(get.text, 'html.parser')
per_36 = soup.find(id='all_per_minute')
table = per_36.find('table')
这不会返回任何内容,但是,如果我要查找第一个表,它将返回内容。我不明白发生了什么,但我认为这可能与那些评论块有关?
【问题讨论】:
-
看起来页面使用 jscript 动态加载数据。搜索 Selenium(或其他替代品)。
-
另外,find 只返回第一个匹配项,而 find_all 返回所有匹配项。并且 id 通常(并非总是)是唯一的,因此会导致一次匹配。但是没有查看是否有嵌套表。
标签: python html beautifulsoup xml-parsing html-parsing