Поврежденный файл PDF после запросы .get () с Python - PullRequest
2 голосов
/ 05 февраля 2020

Я пытаюсь загрузить PDF-файл, используя запросы .get (). Он работает для большинства тестовых PDF-файлов, которые я нашел, но в этом случае это не так, и файл поврежден. Если я открою URL с помощью браузера и сохраню файл, он будет работать нормально. Я пытался загрузить его порциями, используя «Поток», но с тем же результатом. Не могли бы вы объяснить мне, что мне не хватает?

import requests

file_url = 'http://medianet.edmond-de-rothschild.fr/edram/pdf/kiid_fr0010172767_en_20200120_20200128_1954.pdf'


headers = {'Content-type': 'application/pdf'}
r = requests.get(file_url, headers=headers)

with open("python.pdf", "wb") as pdf:
    pdf.write(r.content)
    pdf.close()

1 Ответ

2 голосов
/ 05 февраля 2020

Исправление информации header заставляет его работать.

import requests

file_url = "http://medianet.edmond-de-rothschild.fr/edram/pdf/kiid_fr0010172767_en_20200120_20200128_1954.pdf"

headers = {
    "User-Agent": "PostmanRuntime/7.20.1",
    "Accept": "*/*",
    "Cache-Control": "no-cache",
    "Postman-Token": "8eb5df70-4da6-4ba1-a9dd-e68880316cd9,30ac79fa-969b-4a24-8035-26ad1a2650e1",
    "Host": "medianet.edmond-de-rothschild.fr",
    "Accept-Encoding": "gzip, deflate",
    "Connection": "keep-alive",
    "cache-control": "no-cache",
}

r = requests.get(file_url, file_url, headers=headers)

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

...