Я пытаюсь автоматизировать загрузку документов через 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
Что в заголовках делает загрузка работает? Любые решения?
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)