Файл поврежден при попытке загрузить через запросы. - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь автоматизировать загрузку документов через Selenium.

Я использую request.get () для загрузки файла после извлечения URL-адреса с веб-сайта:

import requests 

url= 'https://www.schroders.com/hkrprewrite/retail/en/attach.aspx?fileid=e47b0366c44e4f33b04c20b8b6878aa7.pdf'
myfile = requests.get(url)
open('/Users/hemanthj/Downloads/AB Test/' + "A-Acc-USD" + '.pdf', 'wb').write(myfile.content)
time.sleep(3)

Файл загружен, но поврежден при попытке открыть. Размер файла не более нескольких КБ.

Я тоже пытался добавить информацию заголовка из этой темы, но безуспешно: Поврежденный файл PDF после запросы .get () с Python

Что в заголовках делает загрузка работает? Любые решения?

1 Ответ

0 голосов
/ 13 апреля 2020

The problem was in an incorrect URL. It loaded HTML instead of PDF. Looking throw the site I found the URL that you were looking for. Try this code and then open the document with pdf reader program.

import requests
import pathlib


def load_pdf_from(url:str, filename:pathlib.Path) -> None:
    response:requests.Response = requests.get(url, stream=True)
    if response.status_code == 200:
        with open(filename, 'wb') as pdf_file:
            for chunk in response.iter_content(chunk_size=1024):
                pdf_file.write(chunk)
    else:
        print(f"Failed to load pdf: {url}")


url:str = 'https://www.schroders.com/hkrprewrite/retail/en/attachment2.aspx?fileid=e47b0366c44e4f33b04c20b8b6878aa7.pdf'

target_filename:pathlib.Path = pathlib.Path.cwd().joinpath('loaded_pdf.pdf')

load_pdf_from(url, target_filename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...