Получить текущую открытую страницу Chrome в формате HTML, не сохраняя ее - PullRequest
0 голосов
/ 21 сентября 2018

Я реализую скрипт на python, в основном на основе pyautogui.Сценарий выполняет одну из задач - открыть веб-страницу Chrome.После этого мне нужно будет получить доступ к DOM этой в настоящее время открытой веб-страницы.Поскольку я не открыл браузер с селеном, я не могу использовать его для анализа DOM.Тем не менее, мой вопрос: доступна ли в данный момент открытая хромированная страница на жестком диске, чтобы я мог получить к ней доступ с помощью селена?Как файл .html?Я проверил много других вопросов здесь, и пользователи говорят о кеше Chrome, но там нет html-файлов.Мне просто нужно иметь доступ к текущей открытой странице, а не ко всем историческим данным в кеше.Открытие веб-браузера непосредственно с селеном также не вариант, так как большинство проанализированных веб-сайтов имеют капчу и технологию дистилляции.Спасибо.

1 Ответ

0 голосов
/ 21 сентября 2018

Если вы запустите исходный Chrome с аргументом --remote-debugging-port=PORT_NR и зайдете в localhost: PORT_NR из другого браузера, у вас будет доступ ко всему содержимому браузера, включая dev console.

Как только у вас будет это, у вас есть несколько способов пойти:

  1. Вы можете посетить http://localhost:PORT_NR с любым другим браузером (или даже с тем же браузером), и у вас должен быть полный доступ ксодержание оригинального Chrome.С Selenium у вас должно быть относительно легкое время.

  2. Вы также можете использовать devtools api (документация ... хорошо ... есть возможности для улучшения.Ищите chrome devtools protocol, чтобы быть пораженным отсутствием документов).Например, вы можете получить http://localhost:PORT_NR/json, чтобы получить доступные URI отладки.Захватите соответствующую конечную точку веб-сокета (webSocketDebuggerUrl).Откройте соединение через веб-сокет и введите команду, например {"method": "DOM.getDocument", "id":12}.Вы можете найти доступные команды, связанные с DOM здесь: https://chromedevtools.github.io/devtools-protocol/1-3/DOM

...