【问题标题】:Why am I getting blank pdf when downloading using request in python为什么我在 python 中使用请求下载时得到空白 pdf
【发布时间】:2020-09-05 09:14:27
【问题描述】:

我正在尝试使用 requests.get 方法从其 URL 下载 pdf,然后在本地桌面中使用变量名保存它。

但是,运行大约需要 2 分钟,并且 pdf 已保存,但 acrobat reader 无法阅读。

from datetime import date

market_type = "ECenter"

market_name = ["Minden", "Porta-Westfalica", "Osnabruck", "Melle", "Bad Nenndorf", "Herford"]

weekNumber = date.today().isocalendar()[1]

city_codes = ["3315", "3317", "3309", "3323", "3325", "3328"]

for city in city_codes:
 url = "https://static.edeka.de/media/handzettel/MINDEN/"+city+"/blaetterkatalog/pdf/complete.pdf"
 myfile = requests.get(url)
 for name in market_name:
  with open('C:\Users\user\Desktop\LeafletFiles\{0}_{1}_{2}.pdf'.format(market_type,name,str(weekNumber)), 'w') as pdf:
    pdf.write(myfile.content)

【问题讨论】:

    标签: python pdf python-requests


    【解决方案1】:

    我会为此使用pathlib 模块。以下代码可能对您有所帮助:

    from datetime import date
    from pathlib import Path  # import pathlib module
    import requests
    
    market_type = "ECenter"
    
    market_name = ["Minden", "Porta-Westfalica", "Osnabruck", "Melle",
                   "Bad Nenndorf", "Herford"]
    
    weekNumber = date.today().isocalendar()[1]
    
    city_codes = ["3315", "3317", "3309", "3323", "3325", "3328"]
    
    for city in city_codes:
        url = "https://static.edeka.de/media/handzettel/MINDEN/" + city + "/blaetterkatalog/pdf/complete.pdf"
        myfile = requests.get(url)
        for name in market_name:
            # making our pdf
            pdf = Path('C:\\Users\\user\\Desktop\\LeafletFiles\\{0}_{1}_{2}.pdf'.format(
                    market_type, name, str(weekNumber)))
            pdf.write_bytes(myfile.content) # writing the content
    

    【讨论】: