Используйте python-firefox-selenium для заполнения формы и загрузки перенаправленной страницы в формате PDF - PullRequest
0 голосов
/ 06 мая 2019

Я хочу автоматически загрузить некоторые детали с веб-страницы, на которой есть форма для заполнения. После нажатия кнопки ввода страница перенаправляется на другой URL-адрес, который содержит файл PDF. Я хочу скачать файл PDF. Я пытался сохранить как HTML, но он не имеет никакой информации вообще. Также пытались сделать снимок экрана, но для одного файла требуется более одного снимка экрана. Я хочу, чтобы страница была загружена в формате pdf.

  1. Попытка сохранения в формате html - файл html не содержит информации
  2. Пробные снимки экрана - более одного снимка экрана для одной страницы - сложности
  3. Пробовал pdfkit - он переопределяет URL-адрес и, таким образом, теряет введенные учетные данные, что приводит к появлению страницы ошибки.

Я понимаю, что нелегко эмулировать опцию "сохранить" браузера. Но, к сожалению, это то, чего я хочу.

1 Ответ

0 голосов
/ 07 мая 2019

Отличный вопрос.Я сталкивался с этой проблемой раньше и нашел фрагменты, которые я присоединился к следующему коду.Вместо отображения PDF в браузере он будет загружен.

# firefox profile to download PDF
mime_types_pdf = "application/pdf,application/vnd.adobe.xfdf,application/vnd.fdf,application/vnd.adobe.xdp+xml"
mime_types = mime_types_pdf
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", mime_types)
fp.set_preference("browser.helperApps.neverAsk.openFile", mime_types)
fp.set_preference("plugin.disable_full_page_plugin_for_types", mime_types)
fp.set_preference("pdfjs.disabled", True)
geckodriver = '[path_to_your_firefox_driver]/geckodriver'
driver = webdriver.Firefox(executable_path=geckodriver, firefox_profile=fp)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...