gpt4 book ai didi

python - 从 url 读取 pdf 到内存省略保存文件到本地文件

转载 作者:行者123 更新时间:2023-12-05 05:02:38 24 4
gpt4 key购买 nike

我在忽略将文件保存到本地文件时遇到问题。我的问题是如何将 url 内容直接传递给 pdfplumber 模块。我的代码如下

from pathlib import Path
import urllib3
import pdfplumber

def read_pdf(url: str) -> str:
http = urllib3.PoolManager()
temp = Path('temp.pdf')
temp.write_bytes(http.request("GET", url).data)
with pdfplumber.open(temp) as pdf:
text = pdf.pages[0].extract_text()
temp.unlink()
return text

text = read_pdf('https://sample.com/test.pdf')

它可以工作,但我想避免将文件保存到本地,而是只在 RAM 中进行。我试过 io.BytesIO 但它不起作用

最佳答案

与之前的建议不同,您应该使用 pdfplumber.open 而不是 pdfplumber.load! The link用于 pdfplumber 的 repo 。

Warning: pdfplumber.load is deprecated.Please use pdfplumber.open(with same arguments) instead.

因此,除了使用 pdfplumber.open 方法之外,下面的代码提取整个页面而不是第一页。

import urllib3
import pdfplumber
import io


def extract_pdf_by_url(url):
http = urllib3.PoolManager()
temp = io.BytesIO()
temp.write(http.request("GET", url).data)
all_text = ''
with pdfplumber.open(temp) as pdf:
for pdf_page in pdf.pages:
single_page_text = pdf_page.extract_text()
all_text = all_text + '\n' + single_page_text
return all_text

url = 'https://raw.githubusercontent.com/jsvine/pdfplumber/stable/examples/pdfs/background-checks.pdf'
text = extract_pdf_by_url(url)
print(text)

关于python - 从 url 读取 pdf 到内存省略保存文件到本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62075033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com