【问题标题】:Downloading multiple pdfs in Python在 Python 中下载多个 pdf
【发布时间】:2019-07-16 11:14:34
【问题描述】:

我已经从一个网站上抓取了一个 pdf 链接列表(如链接中的链接)并将它们保存在一个 txt 文档中。我已经检查过了,它们是一个字符串。现在我需要真正下载它们。 我的代码在 Jupyter Notebook 中工作,但是当我尝试打开 PDF 时,它会打开 Internet Explorer,然后显示“无法打开 PDF”。

我知道这适用于单个 pdf 链接(文件名/数据周围没有 str()),但我如何让它与多个链接一起使用?

这是我的代码:

with open('minutelinks.txt', 'r') as file:
    data = file.read()

urls = (str(data))
import requests 
r = requests.get(urls)

with open("gmcaminutes.pdf", "wb") as code:
    code.write(r.content)

它会保存 pdf 但无法打开它。

理想情况下,我想要一个包含所有从字符串下载的 PDF 的 PDF。 谢谢

【问题讨论】:

  • 听起来像 code.write 不会生成格式正确的 PDF 文件。 file gmcaminutes.pdf 的输出说文件类型是什么?
  • @NathanMcCoy PDF 文件
  • 尝试使用 PdfFileMerger 合并 pdf 文件

标签: python pdf web-scraping python-requests


【解决方案1】:

尝试:

from PyPDF2 import PdfFileMerger
import requests
urls = ['https://www.tutorialspoint.com/python/python_tutorial.pdf', "https://www.guru99.com/pdf/c_programming_preview.pdf"]

merger = PdfFileMerger()
for url in urls:
    response = requests.get(url)
    title = url.split("/")[-1]
    with open(title, 'wb') as f:
        f.write(response.content)
    merger.append(title)

merger.write("result.pdf")
merger.close()

【讨论】:

  • 这适用于您给出的示例,但不适用于我的“数据”。有什么建议吗?
  • 更新 - 我想我找到了问题 - 我的“数据”文件中的链接没有以 .pdf 结尾,所以我更新了之前抓取它们的脚本以使它们以 .pdf 结尾。 pdf 希望现在可以工作
猜你喜欢
  • 1970-01-01
  • 2012-02-26
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
相关资源
最近更新 更多