【问题标题】:Get the content of PDF from a URL with Python 3 without download it使用 Python 3 从 URL 获取 PDF 的内容,无需下载
【发布时间】:2021-12-14 10:03:30
【问题描述】:

有没有办法从 URL 读取 PDF 文档的第一页而不保存在本地?我需要阅读网站上的 PDF 文档请求。 在下文中,您将找到我尝试执行的代码。该代码适用于某些 http URL,但不适用于其他 URL。

import urllib3
urllib3.disable_warnings()

with urllib3.PoolManager() as http:
    r = http.request('GET', url) 
    with io.BytesIO(r.data) as f:
        reader = PyPDF2.PdfFileReader(f)
        contents = reader.getPage(0).extractText().split('\n') 

这是我使用以下 url 运行此代码时的输出:“http://www.ain.gouv.fr/IMG/pdf/aprejetdae20210709enligne.pdf”

['', '', '', '', '˘ˇˆ', '˙˝', '˚', '!˛', '˛ ', '', 'ˆ˙ˆ#$%', '$', "#'˙", '( ', '', '', '', '˘ˇˆˇ˙', '˝˘ˇˆˇ˛˚', '˜', ' !"ˇ#ˆ"!$%!"ˇ#&', "ˇ'", '˜', '(', '!"ˇ#ˆˇ!$%!"ˇ#)&*', '˜', '((ˇˇ%!"!ˇ', '+,+-', '(./', '01(', '!,(2$˙', '""˚345', '6', '7((&(1(8', '1ˆ(1((˛.', '˜', '$!"!ˇ(1*(1', '1', ',1˝/9,', '/1(', '˜', '\'%!"!ˇ(1(1', '1,1˝/9,(6', '˜', ')%:(()', '˜', '+,+-(.$!"!ˇ()', '˜', '(!˙%!"!ˇ()5,5,((', '=( ...

Python 版本:Python 3.10.0

【问题讨论】:

    标签: python-3.x pdf https urllib3 httplib2


    【解决方案1】:

    短答案 NO(通常不),长答案 MAYBE BUT 在受控设置中。

    对于您的问题,共有三种类型的 PDF,按非线性化、线性化、自定义流式传输的常见顺序排列。并且自定义流需要为两端的库付费,所以让我们拒绝。

    当您下载 WEB 线性化 PDF 的开头时,您会很快看到第一页,但无法轻松查询该页面,除非您将下载保存为 Zer0page.pdf

    为了让任何查看者能够查询页面,您需要下载完整的对象字典,该字典位于完整下载的 pdf 的末尾。

    您的示例链接是最常见的类型,因此“页面 0”地址存储在需要完整下载的文件末尾。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      相关资源
      最近更新 更多