您的位置:首页 > 汽车 > 新车 > 市场营销网络_网络广告案例以及分析_磁力兔子_如何在百度上发广告

市场营销网络_网络广告案例以及分析_磁力兔子_如何在百度上发广告

2024/12/26 17:44:46 来源:https://blog.csdn.net/qq_42755230/article/details/143142813  浏览:    关键词:市场营销网络_网络广告案例以及分析_磁力兔子_如何在百度上发广告
市场营销网络_网络广告案例以及分析_磁力兔子_如何在百度上发广告

目录

    • 1、PyPDF2
    • 2、pdfplumber
    • 3、PyMuPDF
    • 4、pdfminer
    • 总结

1、PyPDF2

PyPDF2 是一个常用的库,可以用来读取、合并、分割和修改PDF文件。读取pdf内容:

import PyPDF2# 打开PDF文件
with open('ELLK-Net_An_Efficient_Lightweight_Large_Kernel_Network_for_SAR_Ship_Detection.pdf', 'rb') as file:reader = PyPDF2.PdfReader(file)# 获取页面数num_pages = len(reader.pages)print(f"页面数: {num_pages}")# 读取每一页的文本for i in range(num_pages):page = reader.pages[i]text = page.extract_text()print(f"第 {i + 1} 页的内容:\n{text}")

结果如下:
在这里插入图片描述

效果: 可以看出,读取是从左往右,从上往下,文本内容读取的还挺全的,但是图片、表格都读不出来。

2、pdfplumber

pdfplumber 是一个功能强大的库,专门用于提取PDF文件中的文本和表格数据。读取PDF内容:

import pdfplumber# 打开PDF文件
with pdfplumber.open('example.pdf') as pdf:for i in range(len(pdf.pages)):page = pdf.pages[i]text = page.extract_text()print(f"第 {i + 1} 页的内容:\n{text}")

结果如下:
在这里插入图片描述

效果: 看结果,这个库读取PDF是一整行一整行读取的,当文档内容是两页的时候,两列同一行会被同时读取。看别人说读取表格方便,但是这里也没读取出来,具体如下图所示。
在这里插入图片描述

此外,使用table = page.extract_table()单独读取有表格的页,输出结果为None

3、PyMuPDF

PyMuPDF 是另一个高效的库,可以处理PDF文件,支持文本提取、图像提取等功能。读取pdf如下:

import fitz  # PyMuPDF
from PIL import Image
import io
# 打开PDF文件
doc = fitz.open('ELLK-Net_An_Efficient_Lightweight_Large_Kernel_Network_for_SAR_Ship_Detection.pdf')
for page_number,page in enumerate(doc):text = page.get_text()print(f"第 {page.number + 1} 页的内容:\n{text}")# 获取页面中的所有图片image_list = page.get_images(full=True)# 遍历所有图片for img_index, img in enumerate(image_list):# 图片的XREFxref = img[0]# 获取图片对象base_image = doc.extract_image(xref)# 获取图片的二进制数据image_bytes = base_image["image"]# 将二进制数据转为PIL图像image = Image.open(io.BytesIO(image_bytes))# # 左右翻转# image = image.transpose(method=Image.FLIP_LEFT_RIGHT)# 上下翻转image = image.transpose(method=Image.FLIP_TOP_BOTTOM)# 获取图片的扩展名image_ext = base_image["ext"]# 保存图片# with open(f"page_{page_number + 1}_img_{img_index + 1}.{image_ext}", "wb") as image_file:#     image_file.write(image_bytes)image.save(f"page_{page_number + 1}_img_{img_index + 1}.{image_ext}")print(f"第 {page_number + 1} 页中提取的图片 {img_index + 1} 已保存。")

读取效果如下:
在这里插入图片描述

效果:文字提取效果与PyPDF2差不多,不同点是遇到大的空格会直接换行。可以读取图片,我这里发现读取的图片需要上下翻转。插入的图片可以直接读取,但是流程图可能因为是visio画的,读取不出来。另外,三线表格还是没有读取出来。

4、pdfminer

pdfminer.six 是一个专注于从PDF文件中提取文本和元数据的库。读取PDF如下:

from pdfminer.high_level import extract_text# 提取文本
text = extract_text('example.pdf')
print(text)

读取结果:
在这里插入图片描述

效果: 读取结果整体空行多。读取方式按行读取,有左右两列的时候,哪一列先读到就读哪一列,因此顺序可能会错乱,就像上面结果图一项,该页内容先读取的右边的列。

总结

看网上的说法是:
PyPDF2:适合基本的PDF操作,如合并和提取文本。
pdfplumber:非常适合提取文本和表格。
PyMuPDF:功能强大,处理速度快,支持多种操作。
pdfminer.six:更适合复杂的文本提取需求。
但在读取类似上面这样的论文文档时,PyPDF2和PyMuPDF感觉好用点。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com