2016-11-21 11 views
1

Я изучал способы использования python для входа в безопасный веб-сайт (например, Salesforce), перейти на определенную страницу и распечатать (сохранить) страницу в формате pdf при предписанном место нахождения.Войдите в защищенный сайт, автоматически распечатайте страницу как pdf

Я попытался с помощью:

  1. pdfkit.from_url: Используйте запрос, чтобы получить куки сессии, разобрать его, а затем передать его в куки в настройках опций в wkhtmltopdf в. Этот метод не работает из-за того, что pdfkit не может распознать cookie, который я передал.

  2. pdfkit.from_file: используйте Request.get, чтобы получить html страницы, которую я хочу распечатать, а затем используйте pdfkit для преобразования html-файла в pdf. Это работает, но формат страницы и изображения отсутствуют.

  3. Selenium: Используйте webdriver для входа в систему, затем перейдите на нужную страницу, вызовите функцию windows.print. Это не работает, потому что я не могу передать какие-либо аргументы в диалог SaveAs окна.

Есть ли у кого-нибудь идеи обойти?

+0

Одним из вариантов может быть [сохранить скриншот с использованием селена] (http://stackoverflow.com/questions/33692179/export-as-pdf-using-selenium-webdriver-screenshot) (и конвертировать в PDF). – Arya

+0

Проблема заключается в том, что полный скриншот страницы недоступен и нет текстового рендеринга. –

ответ

0
  • Войти с помощью запросов
  • использование запрашивает механизм сеанса для отслеживания куки
  • использовать сессии, чтобы получить HTML-страницу
  • разбора HTML (используйте BeautifulSoup)
  • идентифицировать IMG-теги и css links
  • загрузить локально изображения и документы css
  • переписать атрибуты img src, чтобы указать на локально загруженные изображения
  • переписать CSS ссылку, чтобы указать на локально загруженный CSS
  • сериализации нового HTML-дерево в локальный файл .html
  • использовать любой «HTML в PDF» решения для визуализации локального файла .html