Как получить .pdf скачать в конце цепочки перенаправления с Selenium? - PullRequest
0 голосов
/ 10 октября 2019

Я испробовал все способы, которые я могу придумать для получения pdf по ссылке: http://apps.colorado.gov/dora/licensing/Lookup/LicenseLookup.aspx?docExternal=926241&docGuid=8DC9BB72-A921-45E7-9BCD-358846FCE54D

Я попробовал:

  • Нажатие кнопки для этой ссылки
  • Открытие href вручную в веб-драйвере
  • Использование WebDriverWait и различные команды для ожидания переключения URL-адресов или появления определенных URL-адресов
  • Сон и повторное получение page_source
  • Использование оператора try для переопределения исключения TimeOut и попытки оттуда выдавать больше команд

Каждая попытка открыть эту ссылку приводит к исключению тайм-аута, даже если вручную он прекрасно работает.

Похоже, что он проходит через 2 (?) Перенаправления, прежде чем попасть в файл PDF, который я хотел бы получить. Есть ли кто-нибудь с опытом селена, который может указать мне правильное направление для получения этого PDF? Я запускаю Selenium на ChromeDriver в скрипте Python.

ОТВЕТ:

download_buttons = self.browser.find_elements_by_link_text("External Document")

                    for button in download_buttons:

                            new_file_path = f'{blah}.pdf'

                            link = button.get_attribute("href")
                            download_link = requests.get(link, allow_redirects=True)

                            try:
                                    with open(new_file_path, 'wb') as new_file:
                                            new_file.write(download_link.content)
                            except Exception as e:
                                    self.print_error(f"Failed to write file: {e}")

1 Ответ

1 голос
/ 11 октября 2019

Я пока не могу комментировать, так как я новичок. Когда вы найдете URL, который должен содержать документ, вы можете вызвать библиотеку запросов так же, как этот человек ответил. Получить файл с веб-страницы ASPX, используя Python

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