当前第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页面当作表格,因此就没有找到表格。但是绘制的页面坐标的图像如下:

仔细对比之前的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》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python如何实现从PDF文件中爬取表格数据(代码示例)