【问题标题】:unable to dowload pdf using python无法使用python下载pdf
【发布时间】:2017-09-21 18:58:33
【问题描述】:

我正在尝试使用 python 脚本下载 pdf。我曾尝试使用 urlib、pdfkit 和 curl。当我尝试下载 pdf 时,我得到的是页面的 html/js 内容而不是 pdf 文件。请帮我解决这个问题。

使用 pdfkit:

import pdfkit
pdfkit.from_url('http://www.kubota.com/product/BSeries/B2301/pdf/B01_Specs.pdf', 'out.pdf', options = {'javascript-delay':'10000'})

使用 urllib:

import urllib2
response = urllib2.urlopen('http://www.kubota.com/product/BSeries/B2301/pdf/B01_Specs.pdf')
file = open("out.pdf", 'wb')
file.write(response.read())
file.close()

【问题讨论】:

    标签: python python-3.x web-scraping urllib python-pdfkit


    【解决方案1】:

    你应该可以很容易地使用requests 做到这一点

    import requests
    
    r = requests.get('http://www.axmag.com/download/pdfurl-guide.pdf') #your url here
    with open('your_file_path_here.pdf', 'wb') as f:
        f.write(r.content)
    

    【讨论】:

    • 实际上,刚刚使用您的链接进行了尝试,看起来在您可以访问您正在寻找的 PDF 之前有一个验证码/某种身份验证,所以这可能是问题所在,而不是您代码
    • 感谢您的回复。我该如何解决?我是否需要通过 headers 发送一些信息来破解身份验证?
    【解决方案2】:

    您可以使用urllib3 库

    import urllib3
    
    def download_file(download_url):
        http = urllib3.PoolManager()
        response = http.request('GET', download_url)
        f = open('output.pdf', 'wb')
        f.write(response.data)
        f.close()
    
    if __name__ == '__main__':
        download_file('http://www.kubota.com/product/BSeries/B2301/pdf/B01_Specs.pdf')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      相关资源
      最近更新 更多