【发布时间】:2017-01-07 00:07:54
【问题描述】:
这是一个不寻常的问题。我正在尝试从某个网站中提取表格(由于安全原因,无法提供链接)。问题是该站点在通过网站访问时会加载该表,但是当我们在该表上的任何值/表上使用 inspect element 时,它是不可见的。它只显示<html>_</html>,其中包含一些脚本和链接。最初我尝试使用beautifulsoup 提取表,但没有成功。然后我用熊猫
pandas.read_html(html) 但该站点包含不止一个表,其输出是这样的
[ Code Name
0 A John
1 B Terry
2 C Kitty
Column 1 Column 2 Column 3
0 1 0.6173661242 8
1 2 0.7232098163 20
2 3 0.9954581943 39
3 4 0.5595425507 18
4 5 0.9644025159 20
5 6 0.3914102544 29
6 7 0.0154642132 49
....
[873 rows x 3 columns],
0\n\t\t\t\t\t\t\t\t\t
0 0 ]
然后我尝试了类似pandas.read_html(html, match="Column 1") 它返回此错误
ValueError: 没有找到匹配模式 'Column 1' 的表
知道如何使用 read_html 提取表格吗?
【问题讨论】:
-
您可能可以索引到您想要的特定表。看起来你想要第二张桌子(?)所以你可能会做
df = pd.read_table(url)[1] -
它只是输出整个网站。我认为该站点(出于安全考虑)使用其他方式来输出表格,而不是使用普通的表格 html 标记。
-
你什么时候做
pd.read_table(html)你得到的列表的长度是多少? -
它不显示任何长度它输出整个网站
-
你说它输出类似的东西(在你的帖子中),这对我来说显然看起来像一个列表。将结果存储到变量并打印它的长度
标签: python html pandas web-scraping