BBC 足球网页抓取问题

问题描述 投票:0回答:2

我正在尝试抓取此页面以获取表数据:

https://www.bbc.com/sport/football/premier-league/table

但是我最终得到的是网页的不同部分

table_MN = pd.read_html('https://www.bbc.com/sport/football/premier-league/table')
print(f'Total tables: {len(table_MN)}')
df=table_MN
print(df)
python web-scraping
2个回答
1
投票

不确定您期望什么,但是

pandas.read_html()
对于“原始 HTML”效果很好。只有一些元素(例如团队名称)会被脚本变形,不会出现在您的结果中。

import pandas as pd    
df = pd.read_html('https://www.bbc.com/sport/football/premier-league/table')[0]

如果您想删除最后一行,您可以使用

iloc[:-1]

对数据框进行切片
df.iloc[:-1]#.to_excel('file.xlsx', index=False)

注意 *如果您想获取特定信息,例如包含完整团队名称的

<abbr>
的标题,请直接使用bs4抓取表格。 *

输出

未命名:0 未命名:1 团队 P W D L F A GD 表格
1 队伍还没动 曼城 25 20 3 2 61 14 47 63 2022年1月1日以2-1战胜阿森纳。2022年1月15日以1-0战胜切尔西。2022年1月22日以1-1战胜南安普顿。2022年2月9日以2-0战胜布伦特福德。2022年2月9日以4-0战胜布伦特福德。 2022 年 2 月 12 日诺维奇城。
2 队伍还没动 利物浦 24 16 6 2 61 19 42 54 DD鲁2022年1月2日2-2对阵切尔西。WW2022年1月16日3-0对阵布伦特福德。WW2022年1月23日3-1对阵水晶宫。WW2022年2月10日2-0对阵莱斯特城。WW获胜1- 2022 年 2 月 13 日,对阵伯恩利 0 分。
3 队伍还没动 切尔西 24 13 8 3 48 18 30 47 2021年12月29日DD鲁1-1对阵布莱顿。2022年1月2日DD鲁2-2对阵利物浦。2022年1月15日DD鲁0-1对阵曼城。1月18日DD鲁1-1对阵布莱顿2022.WW于2022年1月23日以2-0战胜托特纳姆热刺队。

-2
投票

你真的做得很好。我们已在我们的网站上使用此废料代码来展示现场足球 NBA 赛事。

© www.soinside.com 2019 - 2024. All rights reserved.