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画图软件是哪个

Python打包exe可执行文件

Python中如何对字典排序

Python如何爬取百度云连接方法指导

常用Python解释器有哪些

Python爬虫入门心得分享

Python是什么,如何使用Python

Python如何安装wordcloud库

Python如何批量处理excel数据?

Python怎么调用pi

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




打赏

取消

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

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

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

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

评论

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