Веб-страница уже открыта (в исходном формате); просто нужно прочитать этот текст, используя Selenium

Допустим, у меня уже открыта вкладка в браузере. Его URL-адрес:

view-source:http://www.google.com/webhp?source=search_app

Теперь, когда он уже открыт и отображается, я просто хочу прочитать текст в окне клиента. (Получите контекст страницы или получите ее объект (в отличие от создания нового объекта браузера) или что-то еще. Затем просто прочитайте страницу.)

Есть ли какая-либо методология в Selenium, Splinter, которая позволяет это сделать? Спасибо за любую помощь.


person user225626    schedule 23.08.2013    source источник
comment
Почему вы используете Selenium, если вам нужен только исходный код? Просто используйте urllib или что-то еще, чтобы ПОЛУЧИТЬ страницу, а затем проанализируйте ее с помощью красивого супа или чего-то еще.   -  person Silas Ray    schedule 23.08.2013
comment
Я попытался получить его с помощью urllib, но мне нужно поддерживать контекст номера страницы страницы, с которой я сейчас работаю, и существует множество препятствий JSON, __doPostBack, которые не позволяют мне просто использовать URL-адреса, чтобы вернуться туда, где я был. Мне действительно нужно прочитать, что находится в клиентской области на вкладке, которую я добавил в верхнюю часть браузера, а затем просто выйти из этой вкладки, когда я закончу, чтобы поддерживать осведомленность о местоположении процесса.   -  person user225626    schedule 23.08.2013


Ответы (3)


Если вы спрашиваете, можете ли вы подключиться к уже открытому браузеру, то я считаю, что ответ «Нет».

person Robbie Wareham    schedule 24.08.2013

Вы можете получить исходный код страницы непосредственно с помощью Selenium: WebDriver.getPageSource().

Но если вы используете view-source:url, браузер представит вам html-страницу, включающую отформатированный источник. Firefox например. оборачивает каждую строку в <span id="lineX"></span>. Вместо разбора просто используйте getPageSource без view-source.

Пожалуйста, внимательно прочитайте документацию getPageSource:

Получить источник последней загруженной страницы. Если страница была изменена после загрузки (например, с помощью Javascript), нет гарантии, что возвращенный текст соответствует измененной странице. Обратитесь к документации конкретного используемого драйвера, чтобы определить, отражает ли возвращенный текст текущее состояние страницы или текст, отправленный последним веб-сервером. Возвращаемый источник страницы является представлением базового DOM: не ожидайте, что он будет отформатирован или экранирован так же, как ответ, отправленный с веб-сервера. Думайте об этом как о впечатлении художника.

person lefloh    schedule 24.08.2013

Это то, что я делал:

  1. Попросите селен открыть браузер
  2. Показать всплывающее окно/окно сообщения, чтобы приостановить выполнение
  3. Откройте URL-адрес в браузере и выполните все связанные операции вручную.
  4. Когда я закончу (то есть на целевой странице), я нажму «ОК» во всплывающем окне, а затем код возобновится, извлекая/выполняя задачи, которые мы хотим, на целевой странице, открытой в данный момент в браузере.
person coding_idiot    schedule 24.08.2013