Python如何实现从PDF文件中爬取表格数据(代码示例)


当前第2页 返回上一页

为了提取整个页面中唯一的表格,我们需要定位表格所在的位置。PDF文件的坐标系统与图片不一样,它以左下角的顶点为原点,向右为x轴,向上为y轴,可以通过以下Python代码输出整个页面的文字的坐标情况:

1

2

3

4

5

6

7

8

import camelot

 

# 从PDF中提取表格

tables = camelot.read_pdf('G://Statistics-Fundamentals-Succinctly.pdf', pages='53', \

                          flavor='stream')

 

# 绘制PDF文档的坐标,定位表格所在的位置

tables[0].plot('text')

输出结果为:

1

UserWarning: No tables found on page-53 [stream.py:292]

整个代码没有找到表格,这是因为stream方法默认将整个PDF页面当作表格,因此就没有找到表格。但是绘制的页面坐标的图像如下:

9419034-b1a869f1bc21253a.png

仔细对比之前的PDF页面,我们不难发现,表格对应的区域的左上角坐标为(50,620),右下角的坐标为(500,540)。我们在read_pdf()函数中加入table_area参数,完整的Python代码如下:

1

2

3

4

5

6

7

8

9

10

11

import camelot

 

# 识别指定区域中的表格数据

tables = camelot.read_pdf('G://Statistics-Fundamentals-Succinctly.pdf', pages='53', \

                          flavor='stream', table_area=['50,620,500,540'])

 

# 绘制PDF文档的坐标,定位表格所在的位置

table_df = tables[0].df

 

print(type(table_df))

print(table_df.head(n=6))

输出的结果为:

1

2

3

4

5

6

7

8

<class 'pandas.core.frame.DataFrame'>

         0               1                2           3

0  Student  Pre-test score  Post-test score  Difference

1        1              70               73           3

2        2              64               65           1

3        3              69               63          -6

4        …               …                …           …

5       34              82               88           6

总结

在具体识别PDF页面中的表格时,除了指定区域这个参数,还有上下标、单元格合并等参数,详细地使用方法可参考camelot官方文档网址:https://camelot-py.readthedoc...。

以上就是Python如何实现从PDF文件中爬取表格数据(代码示例)的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python标准库之sched模块介绍

Python如何判断是否为浮点数

有了Python还用得着excel吗?

Python实现各种最优化算法

如何利用Python合并文本

Python中的tornado之helloworld的实现代码

Python能做什么科学计算

怎么用Python画圆

pandas技巧之 详解dataframe中的apply与applymap方法

孩子学Python有用吗

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...