美文网首页
下载网页pdf文件、读取和删除pdf文本

下载网页pdf文件、读取和删除pdf文本

作者: 逍遥_yjz | 来源:发表于2021-12-29 21:09 被阅读0次

1.下载网页pdf文件

第一种使用requests下载

def getPDF_fromWeb(url):
    headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0'
        }
    response = requests.get(url,headers=headers,stream=True)

    with open('data/20211025.pdf', 'wb') as f:

        f.write(response.content)

第二种使用urllib
这种下载后,可能pdf的问题,编码错误,建议第一种方法。

def getPDF_fromWeb2(url):
    file_name = url.split('/')[-1]
    u = urllib.request.urlopen(url)
    f = open(file_name, 'wb')

    block_sz = 8192
    while True:
        buffer = u.read(block_sz)
        # 报错,编码问题。
        if not buffer:
            break

        f.write(buffer)
    f.close()
    print("Sucessful to download" + " " + file_name)

2. 读取pdf文本

安装pdfplumber,

pip install pdfplumber

一些常用的方法

  • extract_text() 用来提页面中的文本,将页面的所有字符对象整理为的那个字符串
  • extract_words() 返回的是所有的单词及其相关信息
  • extract_tables() 提取页面的表格
  • to_image() 用于可视化调试时,返回PageImage类的一个实例
import pdfplumber

with pdfplumber.open("data/20211126.pdf") as pdf:
    page_count = len(pdf.pages)
    print(page_count)
    for page in pdf.pages:
        print('---------- 第[%d]页 ----------' % page.page_number)
        print(page.extract_text())
import pdfplumber

with pdfplumber.open("data/20211126.pdf") as pdf:
     page_count = len(pdf.pages)
     print(page_count)
     word = pdf.pages[0].extract_text()

3. 删除一个文件或文件夹

使用python删除一个文件或文件夹,需要使用os模块。

import os
os.remove(path)  # path是文件的路径,如果这个路径是一个文件夹,则会抛出OSError的错误,这时需用用rmdir()来删除
os.rmdir(path)  # path是文件夹路径,注意文件夹需要时空的才能被删除
os.unlink('F:\新建文本文档.txt')  # unlink的功能和remove一样是删除一个文件,但是删除一个删除一个正在使用的文件会报错。
import os
path = 'F:/新建文本文档.txt'  # 文件路径
if os.path.exists(path):  # 如果文件存在
    # 删除文件,可使用以下两种方法。
    os.remove(path)  
    #os.unlink(path)
else:
    print('no such file:%s'%my_file)  # 则返回文件不存在
import os
os.removedirs(path)  # 递归地删除目录。如果子目录成功被删除,则将会成功删除父目录,子目录没成功删除,将抛异常。
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))
import shutil
shutil.rmtree()

4. windows下生成将pdf文件生成图片

# coding:utf-8
"""
1、安装库  pip install pymupdf
2、直接运行
"""
import fitz

#  打开PDF文件,生成一个对象
doc = fitz.open('data/20211126.pdf')

for pg in range(doc.pageCount):
    page = doc[pg]
    rotate = int(0)
    # 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
    zoom_x = 2.0
    zoom_y = 2.0
    trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
    pm = page.getPixmap(matrix=trans, alpha=False)
    pm.writePNG('data/%s.jpg' % pg)

相关文章

网友评论

      本文标题:下载网页pdf文件、读取和删除pdf文本

      本文链接:https://www.haomeiwen.com/subject/njlbqrtx.html