温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 如何利用Python提取PDF文本

如何利用Python提取PDF文本

发布时间:2022-07-28 10:41:41 来源:亿速云 阅读:102 作者:iii 栏目: 开发技术

这篇文章主要介绍了如何利用Python提取PDF文本的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何利用Python提取PDF文本文章都会有所收获,下面我们一起来看看吧。

第一步,安装工具库

1、tika — 用于从各种文件格式中进行文档类型检测和内容提取

2、wand — 基于 ctypes 的简单 ImageMagick 绑定

3、pytesseract — OCR 识别工具

创建一个虚拟环境,安装这些工具

python -m venv venv
source venv/bin/activate
pip install tika wand pytesseract

第二步,编写代码

假如 pdf 文件里面既有文字,又有图片,以下代码可以直接识别文字:

import io
import pytesseract
import sys
 
from PIL import Image
from tika import parser
from wand.image import Image as wi
 
text_raw = parser.from_file("example.pdf")
print(text_raw['content'].strip())

这还不够,我们还需要能失败图片的部分:

def extract_text_image(from_file, lang='deu', image_type='jpeg', resolution=300):
    print("-- Parsing image", from_file, "--")
    print("---------------------------------")
    pdf_file = wi(filename=from_file, resolution=resolution)
    image = pdf_file.convert(image_type)
    image_blobs = []
    for img in image.sequence:
        img_page = wi(image=img)
        image_blobs.append(img_page.make_blob(image_type))
    extract = []
    for img_blob in image_blobs:
        image = Image.open(io.BytesIO(img_blob))
        text = pytesseract.image_to_string(image, lang=lang)
        extract.append(text)
    for item in extract:
        for line in item.split("\n"):
            print(line)

合并一下,完整代码如下:

import io
import sys
 
from PIL import Image
import pytesseract
from wand.image import Image as wi
from tika import parser
 
def extract_text_image(from_file, lang='deu', image_type='jpeg', resolution=300):
    print("-- Parsing image", from_file, "--")
    print("---------------------------------")
    pdf_file = wi(filename=from_file, resolution=resolution)
    image = pdf_file.convert(image_type)
    for img in image.sequence:
        img_page = wi(image=img)
        image = Image.open(io.BytesIO(img_page.make_blob(image_type)))
        text = pytesseract.image_to_string(image, lang=lang)
        for part in text.split("\n"):
            print("{}".format(part))
 
def parse_text(from_file):
    print("-- Parsing text", from_file, "--")
    text_raw = parser.from_file(from_file)
    print("---------------------------------")
    print(text_raw['content'].strip())
    print("---------------------------------")
 
if __name__ == '__main__':
    parse_text(sys.argv[1])
    extract_text_image(sys.argv[1], sys.argv[2])

第三步,执行

假如 example.pdf 是这样的:

如何利用Python提取PDF文本

在命令行这样执行:

python run.py example.pdf deu | xargs -0 echo > extract.txt

最终 extract.txt 的结果如下:

-- Parsing text example.pdf --
---------------------------------
Title pure text
 
Content pure text
 
    Slide 1
    Slide 2
---------------------------------
-- Parsing image example.pdf --
---------------------------------
Title pure text
 
Content pure text
 
Title in image
 
Text in image

你可能会问,如果是简体中文,那个 lang 参数传递什么,传 'chi_sim',其实是有官方说明的

如何利用Python提取PDF文本

关于“如何利用Python提取PDF文本”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“如何利用Python提取PDF文本”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节
推荐阅读:
  1. C# 提取PDF文本和图片
  2. 如何在python中提取PDF文本

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python pdf
  • 上一篇新闻:
    Golang中的包及包管理工具go mod怎么使用
  • 下一篇新闻:
    怎么使用Java+mysql实现学籍管理系统

猜你喜欢

  • C++中memwatch工具怎么使用
  • sql怎么删除表中某个数据
  • sql提示标识符无效如何解决
  • MySQL查询速度慢的原因有哪些
  • hadoop怎么构建数据仓库
  • python元组怎么转换列表
  • c语言自增的形式有哪些
  • sql中foreach的用法是什么
  • linux全局搜索目录怎么实现
  • php简单的分页代码怎么写
最新资讯
  • 如何使用Tableau的趋势线功能来显示数据的长期趋势
  • 如何使用Tableau的工具面板中的工具来增强可视化效果如添加注释、文本框等
  • 如何使用Tableau的聚合和粒度设置来控制数据的汇总级别
  • 如何通过Tableau的连接功能连接到外部数据仓库或数据集市
  • 如何使用Tableau的表计算和行级计算功能来执行复杂的数据分析
  • 在Tableau中如何创建自定义的地图背景和地理图层
  • 如何使用Tableau的数据提取功能来加速大型数据集的加载和查询
  • 如何利用Tableau的工具提示功能来为用户提供额外的数据详情
  • 如何将Tableau的仪表板嵌入到PowerPoint或Word文档中
  • 如何使用Tableau的故事功能来创建和分享交互式数据叙事
相关推荐
  • Python如何提取PDF表格数据
  • Python提取PDF内容的方法(文本、图像、线条等)
  • Python如何批量提取PDF文件中文本
  • 利用python提取pdf文本数字的案例
  • 如何使用pdfbox实现pdf文本提取和合并功能
  • 怎么提取pdf图片
  • 使用Python怎么提取PDF表格
  • 使用python怎么提取html文本
  • Python中怎么PDF文件提取数据
  • python如何提取html文本

相关标签

python基础 python新手入门 python爬虫 python函数 python课程 python编程快速上手 python小白 python推导式 python django python发送邮件 python版本 python魔术方法 python dict wxpython python魔法方法 python3多线程 python爬虫库 python 文件操作 python27.dll Python正则表达式
AI

深圳SEO优化公司北海网站开发多少钱马鞍山关键词按天计费推荐常德百姓网标王推广哪家好焦作英文网站建设推荐潮州SEO按天扣费庆阳建站哪家好塔城网站seo优化公司石岩模板网站建设报价赤峰网站优化按天扣费推荐鹤壁模板网站建设泉州网站优化按天计费公司临沂网站推广哪家好南充百度关键词包年推广哪家好黔南网站搭建推荐哈尔滨营销型网站建设西安网站优化按天收费推荐庆阳企业网站建设推荐德阳网站优化赣州网站制作价格合肥企业网站建设报价东营SEO按天计费兰州网站建设多少钱南通网站推广公司大理网站优化软件报价巢湖英文网站建设湘西网站制作价格坑梓网络推广淮南建站哪家好成都seo网站优化哪家好哈密seo网站优化公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化