gpt4 book ai didi

Python爬取表格元素

转载 作者:行者123 更新时间:2023-12-01 03:26:52 24 4
gpt4 key购买 nike

我正在尝试从此网页(http://www.basketball-reference.com/teams/CHO/2017.html)中提取与表(Team Misc)相对应的所有元素。

我想提取“Team”中的所有数字 - (这一行:17 13 2.17 -0.51 1.66 106.9 104.7 96.5 .300 .319 .493 10.9 20.5 .228 .501 11.6 79.6 .148 频谱中心 269,47)

import urllib2
from bs4 import BeautifulSoup

htmla = urllib2.urlopen('http://www.basketball-reference.com/teams/CHO/2017.html')
bsObja=BeautifulSoup(htmla,"html.parser")
tables = bsObja.find_all("table")

尝试了上面的代码,希望我能得到所有表的列表,然后选择正确的一个。但现在无论我如何尝试,我只从该页面获得 1 个表。

对另一种方法有什么想法吗?

最佳答案

此页面将所有表格隐藏在注释中,JavaScript 使用它来显示表格,并可能在显示之前进行排序或过滤。

所有评论均在<div class='placeholder'>之后所以你可以用它来找到这条评论,从评论中获取所有文本并使用 BS 来解析它。

#!/usr/bin/env python3

#import urllib.request
import requests
from bs4 import BeautifulSoup as BS

url = 'http://www.basketball-reference.com/teams/CHO/2017.html'

#html = urllib.request.urlopen(url)
html = requests.get(url).text

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

placeholders = soup.find_all('div', {'class': 'placeholder'})

total_tables = 0

for x in placeholders:
# get elements after placeholder and join in one string
comment = ''.join(x.next_siblings)

# parse comment
soup_comment = BS(comment, 'html.parser')

# search table in comment
tables = soup_comment.find_all('table')

# ... do something with table ...

#print(tables)

total_tables += len(tables)

print('total tables:', total_tables)

这样我就找到了隐藏在评论中的11个表格。

关于Python爬取表格元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41335992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com