pdf读取函数,可以读取本地pdf和url的在线pdf转换为文字

python 复制代码
import requests
from lxml import etree
import os
import urllib
from PIL import Image
from pymysql.converters import escape_string
import sys
import time
from selenium import webdriver
import warnings
import pdfplumber
from urllib import request
import io
import socks
import urllib.parse
import pymysql
import socks
import configparser
import hashlib
import threading
import urllib.parse
import re


def read_pdf(path,proxies={},timeout=(3.2,10),download_image=False):
    f=''
    if path=='' or type(path)!=str:
        print("路径为空或格式不对!")
    if path[0:4]=="http":
        try:
            #data=request.urlopen(path,timeout=10).read()
            print(proxies)
            data=requests.get(url=path,timeout=timeout,proxies=proxies)
            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

可用库自己筛选一下,我把全部的加进来了,proxies是http代理,path是路径,download_image是是否存成本地图片文件。

相关推荐
jz_ddk2 小时前
[数学基础] 瑞利分布:数学原理、物理意义及Python实验
开发语言·python·数学·概率论·信号分析
陈辛chenxin2 小时前
【大数据技术06】大数据技术
大数据·hadoop·分布式·python·信息可视化
狮子也疯狂3 小时前
基于Django实现的智慧校园考试系统-自动组卷算法实现
python·算法·django
云动雨颤3 小时前
爬虫是怎么工作的?从原理到用途
爬虫·python·数据挖掘
月下倩影时3 小时前
ROS1基础入门:从零搭建机器人通信系统(Python/C++)
c++·python·机器人
Danceful_YJ4 小时前
36.优化方法
人工智能·pytorch·python·深度学习·优化器算法
C116114 小时前
Jupyter中选择不同的python 虚拟环境
开发语言·人工智能·python
天下不喵4 小时前
Ubuntu24.02安装python库以及部署python项目
python
残雪飞扬4 小时前
Pycharm社区版安装
ide·python·pycharm
only-code4 小时前
MCP驱动的Rgentic RRG(向量数据库+网络搜索)
数据库·python·大模型·函数调用·mcp