python - 如何用Python下载网页上的PDF文件

标签 python pdf web-scraping beautifulsoup

我正在尝试使用 Python 下载下面链接中的 PDF 文件。

Link

我尝试下载它,但无法打开保存的文件。
我的 PDF 查看器显示“源格式不是 PDF。”
有人可以告诉我出了什么问题吗?

import urllib2

def main():
    url = "https://www.osapublishing.org/view_article.cfm?gotourl=https%3A%2F%2Fwww%2Eosapublishing%2Eorg%2FDirectPDFAccess%2F42C574A0-ABB6-FD11-777A24C1C4C5ADEF_274099%2Foe-21-22-27371%2Epdf%3Fda%3D1%26id%3D274099%26seq%3D0%26mobile%3Dno&org="
    download_file("example", url)

def download_file(file_name, download_url):
    response = urllib2.urlopen(download_url)
    file = open(file_name + ".pdf", 'wb')
    file.write(response.read())
    file.close()
    print("Completed")

if __name__ == "__main__":
    main()

最佳答案

您的 URL不是 PDF 的链接,而是包含 PDF 的 HTML 框架的链接。请改用直接 URL:

url = "http://www.osapublishing.org/DirectPDFAccess/42C574A0-ABB6-FD11-777A24C1C4C5ADEF_274099/oe-21-22-27371.pdf?da=1&id=274099&seq=0&mobile=no"

您可以通过查看原始链接的 HTML 源代码来获取 PDF 文件的源代码。

关于python - 如何用Python下载网页上的PDF文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35354458/

相关文章:

python - 如何计算我可以在 python 中订购列表的不同方式

python - 在python中合并多个字典

asp.net - 在 ASP.NET 中生成 PDF 文档

python - 为什么 python 库(例如 imaplib)不使用日志记录而是使用 sys.stderr.write?

python - PyCharm 没有导出正确的 requirements.txt

java - 使用 itext 将多文本添加到现有 pdf

java - 如何将byte []传递给WebView?

javascript - 如何在 Perl 网络爬虫中处理 Javascript?

python - 发布帖子请求时无法获得所需的响应

java - 在 xpath 中指定多个条件