如何从HTML抓取表格并在Python中创建Excel表?
我接到一个任务,要创建一个Python文件,这个文件可以从一个HTML表格中获取数据,然后把这些数据导出到Excel表格里。
我已经创建好了Python文件,现在想测试一下。我也做了一个包含示例数据的HTML表格。
接下来,我需要写一些JavaScript代码,把表格中的数据发送到Python文件进行处理。我打算用一个按钮来触发这个操作。
JavaScript代码如下:
$("button").click(
function(){
//What should go here?
}
);
你可能不需要这部分,但如果你想看HTML代码,我可以发给你,不过其实就是一个表格和一个按钮,挺简单的。Python文件的内容比较复杂,所以我不太想发出来。我只需要知道怎么把表格数据传给Python文件进行处理。
谢谢!
为了更清楚,我是在HTML中硬编码了一个表格用于测试。一个示例用户应该能够访问这个网页并查看表格。然后他们可以选择把表格导出为Excel文件,保存到他们的电脑上。所以我创建了一个“导出”按钮来开始这个过程,但我不知道怎么把硬编码的数据传给Python脚本。
3 个回答
我不太确定我完全同意这个方法,除非你是在从一个你无法控制的服务器上抓取数据。
如果你能控制提供数据的服务器,我建议把生成表格时用到的变量再传回Python,然后根据这个请求进行一次新的数据库查询。
这样的话,生成一个Excel文件就很简单了,可以用python-excel这个库。
我也不太明白你说的“导出”是什么意思?是让客户下载的东西,还是用户点击后通过邮件发送的,还是别的什么?
你在使用哪个网络框架(如果有的话)?
我觉得这个问题可以分成两个部分:
- 从HTML表格中提取数据。
- 将数据导出为Excel能理解的格式。
从HTML表格中提取数据
我之前其实没有做过这个,但在StackOverflow上已经有一些答案,讲解了用Python库,比如lxml或BeautifulSoup来实现的几种方法。
其实最简单的方法是根本不去提取数据。你是否可以直接访问用来创建HTML表格的数据?如果可以的话,直接使用那些数据会更方便。
将数据导出到电子表格
Excel文件格式(.xls
,.xlsx
)在编程上比较难处理。不过,Excel也能读取.csv
(逗号分隔值)格式的文件,这种文件只是普通文本文件,所以处理起来简单多了。
Python的csv
库非常好用——可以查看这个csv
模块的文档。