小编典典

如何在python中将HTML表转换为数组

python

我有一个html文档,我想从该文档中提取表格并将它们作为数组返回。我正在描绘两个函数,一个函数找到文档中的所有html表,第二个函数将html表转换为二维数组。

像这样:

htmltables = get_tables(htmldocument)
for table in htmltables:
    array=make_array(table)

有2个要注意的地方:1.号码表每天变化2.表格具有各种奇怪的额外格式,例如随机添加的粗体和眨眼标记。

谢谢!


阅读 342

收藏
2021-01-20

共1个答案

小编典典

Pandas可以立即将html中的所有表格提取到数据框列表中,从而使您不必自己解析页面(重新设计轮子)。甲数据帧是一个强大的类型2维阵列的。

我建议继续通过Pandas处理数据,因为它是一个很好的工具,但是如果您愿意,也可以转换为其他格式(列表,字典,csv文件等)。

"""Extract all tables from an html file, printing and saving each to csv file."""

import pandas as pd

df_list = pd.read_html('my_file.html')

for i, df in enumerate(df_list):
    print df
    df.to_csv('table {}.csv'.format(i))

直接从Web而不是从文件获取html内容仅需稍作修改:

import requests

html = requests.get('my_url').content
df_list = pd.read_html(html)
2021-01-20