当前位置: 首页 > news >正文

pdf文件流或者本地文件读取

import requests
import pdfplumber
import io
import os
def read_pdf(path,proxies={},timeout=(3.2,10),download_image=False,headers={}):
f=''
if path=='' or type(path)!=str:
print("路径为空或格式不对!")
if path[0:4]=="http":
try:
#data=request.urlopen(path,timeout=10).read()
print(proxies)
print(headers)
data=requests.get(url=path,timeout=timeout,proxies=proxies,headers=headers)
print(data)
with open('99.pdf','wb+') as f2:
f2.write(data.content)
f = io.BytesIO(data.content)
except Exception as e:
print(e,"打开链接失败")
return ''
else:
try:
path=urllib.parse.unquote(path)
path=path.replace('file:///','').replace('/','\\')
f=open(path,'rb')
except Exception as e:
print(e,"打开本地文件失败")

    text=''
old_path=os.getcwd()
if download_image:
im_path=path.replace('https://','').replace("http://",'')
os.makedirs(im_path, exist_ok=True)
os.chdir(im_path)

with pdfplumber.open(f) as pdf:
# 遍历每个页面
for page in pdf.pages:
# 获取当前页面的全部文本信息,包括表格中的文字,没有内容则打印None
text+=page.extract_text()
if download_image:
images=page.images
i=0
for img in images:
f_img=open('{}.png'.format(i),'wb+')
f_img.write(img['stream'].get_data())
f_img.close()
i+=1
os.chdir(old_path)
f.close()
return text


url='https://www.airuniversity.af.edu/Portals/10/ASPJ/journals/Volume-27_Issue-6/V-Soine-Harker-Heminger-Scherrer.pdf'
proxies={'http':'192.168.1.122:1080','https':'192.168.1.122:1080'}
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 Edg/139.0.0.0',\
#'cookie':'.ASPXANONYMOUS=txzams-d65KJ-plLxuK7ohwAwg6cmLo5fJzCbD3i4CaFY7sH2EYFw2jvP3bw64iuYiVJbpNQBxFLir7s-_8p65Huzw9Sab4REdtsGyvLi4E0hge-0; _ga=GA1.1.509430065.1753846772; dnn_IsMobile=False; ARRAffinity=7604675fe895ac43d4eee5ed64a571e723c5cb50da2e00ebe078cb3d6f359b1c; _ga_CSLL4ZEK4L=GS2.1.s1755051758$o5$g1$t1755052205$j60$l0$h0; _ga_313558765=GS2.1.s1755051759$o5$g1$t1755052205$j60$l0$h0',\
'sec-fetch-dest':'document'}
read_pdf(url,proxies=proxies,headers=headers)

http://www.dtcms.com/a/330636.html

相关文章:

  • OSI七层模型和TCP/IP协议簇
  • elasticsearch冷热数据读写分离!
  • Qt TCP 客户端对象生命周期与连接断开问题解析
  • ESXI 6.7服务器时间错乱问题
  • 面试题之项目中git如何进行管理
  • 计算机如何进行“卷积”操作:从图像到矩阵的奥秘
  • 星空开源MES(万界星空科技)——专业、通用、开源、免费的MES系统
  • AM32电调学习-使用Keil编译uboot
  • 医疗AI问答系统实战:知识图谱+大模型的融合应用开发
  • 带环链表详解:环形链表检测与入环节点查找
  • 推荐三个国内开源数据治理工具
  • Python3 详解:从基础到进阶的完整指南
  • 第四天~什么是ARXML?
  • CV 医学影像分类、分割、目标检测,之【肺结节目标检测】项目拆解
  • pytorch学习笔记-加载现有的网络模型(VGG16)、增加/修改其中的网络层(修改为10分类)
  • AI测试自动化:智能软件质量守护者
  • 观察者模式(C++)
  • CV 医学影像分类、分割、目标检测,之【3D肝脏分割】项目拆解
  • Flutter 顶部导航标签组件Tab + TabBar + TabController
  • 汽车生产线白皮书:稳联技术Profinet转Ethernet IP网关通信高效性
  • 中介者模式和观察者模式的区别是什么
  • 三同步舆情处置原则对政务管理有什么影响作用
  • 从实验室到落地:飞算JavaAI水位监测系统的工程化实践
  • 4.2 Vue3中reactive与ref详解及区别
  • 【企业架构】TOGAF概念之四(终结)
  • Day20 Linux 文件 I/O、目录操作及文件链接与 EDID
  • 小杰python(six day)——网络编程
  • 前端Vite介绍(现代化前端构建工具,由尤雨溪开发,旨在显著提升开发体验和构建效率)ES模块(ESM)、与传统Webpack对比、Rollup打包
  • 20250814 最小生成树总结
  • Vue 3 + TypeScript:package.json 示例 / 详细注释说明