需求说明:
需要从一类pdf中提取必要信息,此处是电子元器件的应用领域信息。
编程语言:python
步骤一:下载pdf
- 使用爬虫库requests库下载,不赘述
步骤二:pdf转换成文本
- 文本要求 方便提取和解析
-
方案一 使用plumber库 直接转化成 txt格式,虽然能够有效的进行数据转换;虽然能够有效转换,但是 对于 pdf两栏的数据,会变成同一行,造成解析混乱; 放弃使用使用此方案;
- 如图
- 如图
-
方案二 先使用 fitz 库将 pdf转换成html,再使用bs4 或xpath转换成txt 文本;这样就可以将原来pdf 的文本按顺序保存下来。
- 如图
- 如图
-
方案三 将pdf 转化成图片,切割分栏,使用OCR工具识别;OCR工具识别的出来的问题,一定的不准确性,放弃此方案。除非是遇到了pdf是纯图片的,才会使用这种方式。
-
步骤三 提取文本信息
- 观察文本特点,使用正则进行提取
- 如图
- 提取出来的文本
- 如图
- 如图
- 使用正则匹配 从 Applications 到 Description 之间的内容就可以了
- 注意
- pdf 并不是如我们期待的 这么规整;可能有多个版本。例如 没有 Applications 内容,没有 Description 字符串 , Applications 少了一个s或全部大写等多种情况。提取出来的内容,还是掺杂许多你不想要的内容,需要进一步清洗;此时就要考虑多种情况写正则表达式,这是提取文本信息最繁琐的耗时的地方。
- 建议提取方案是 先找到结尾 如 Applications 和 Description 处,穷尽开头和结尾的情况,先提取出来一部分内容,再从提取的内容中作筛选。
- 如图