Я испробовал все способы, которые я могу придумать для получения 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}")