为了账号安全,请及时绑定邮箱和手机立即绑定

使用python3从网页中抓取特定表格(网页有多个表格)

使用python3从网页中抓取特定表格(网页有多个表格)

HUWWW 2023-04-25 15:22:38
我正在尝试从网页上的特定表格中提取数据。页面上有多个表,所以我试图使用表 ID 仅提取所需的表。网址:https://basketball.realgm.com/player/Luke-Nelson/Summary/50483我到目前为止的代码如下。from urllib.request import urlopenfrom bs4 import BeautifulSoupimport pandas as pdimport ssl# Ignore SSL certificate errorsctx = ssl.create_default_context()ctx.check_hostname = Falsectx.verify_mode = ssl.CERT_NONE#URL inputurl = 'https://basketball.realgm.com/player/Luke-Nelson/Summary/50483'html = urlopen(url, context=ctx).read()soup = BeautifulSoup(html, "html.parser")table = soup.find('table', id='table-1696')print(table)我假设 print 语句会从表中打印 HTML(以前只在一张表上工作)但是当我运行程序时它有以下输出:终端输出最终我的目标是在 python 中重新创建表并导出到 excel,但无法克服第一个障碍!
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

使用 pandas 获取表格标签并使用 id 属性选择您想要的:


import pandas as pd


url = 'https://basketball.realgm.com/player/Luke-Nelson/Summary/50483'

df = pd.read_html(url, attrs={'id':'table-1696'})[0]


查看完整回答
反对 回复 2023-04-25
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

你可以使用熊猫:


import pandas as pd


df = pd.read_html(url) # df -> list of tables


print(len(df)) # 29 

你可以选择你想要的表格。


查看完整回答
反对 回复 2023-04-25
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

表 ID 是动态分配的,因此我建议使用另一种方法来访问您的表。假设您想获取 NBA 夏季联赛统计数据 - 总计的表格,请尝试:


table_heading = 'NBA Summer League Stats - Totals'

table = soup.find(string=re.compile(table_heading))

          .find_parent()

          .find_next_sibling()

print(table)

table_heading您可以为表格中的其他标题更改。让我知道是否有帮助。


查看完整回答
反对 回复 2023-04-25
  • 3 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信