我有一个html文档,我想从该文档中提取表格并将它们作为数组返回。我正在描绘两个函数,一个函数找到文档中的所有html表,第二个函数将html表转换为二维数组。
像这样:
htmltables = get_tables(htmldocument) for table in htmltables: array=make_array(table)
有2个要注意的地方:1.号码表每天变化2.表格具有各种奇怪的额外格式,例如随机添加的粗体和眨眼标记。
谢谢!
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)