Python Selenium доступ к исходному тексту HTML - PullRequest
84 голосов
/ 22 октября 2011

Как я могу получить HTML источник в переменной, используя модуль Selenium с Python?

Я хотел сделать что-то вроде этого:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get(raw_input("Enter URL: "))
if "whatever" in html_source:
    # Do something
else:
    # Do something else

Какя могу это сделать?Я не знаю, как получить доступ к источнику HTML.

Ответы [ 6 ]

164 голосов
/ 23 октября 2011

Вам необходимо вызвать свойство page_source.Смотри ниже.

from selenium import webdriver
browser = webdriver.Firefox()
browser.get(raw_input("Enter URL: "))
html_source = browser.page_source
if "whatever" in html_source:
    # do something
else:
    # do something else
5 голосов
/ 19 февраля 2013

С Selenium2Library вы можете использовать get_source()

import Selenium2Library
s = Selenium2Library.Selenium2Library()
s.open_browser("localhost:7080", "firefox")
source = s.get_source()
3 голосов
/ 19 ноября 2018

driver.page_source поможет вам получить исходный код страницы. Вы можете проверить, присутствует ли текст в источнике страницы или нет.

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("some url")
if "your text here" in driver.page_source:
    print('Found it!')
else:
    print('Did not find it.')

Если вы хотите сохранить источник страницы в переменной, добавьте строку ниже после driver.get :

var_pgsource=driver.page_source

и измените условие , если , на:

if "your text here" in var_pgsource:
2 голосов
/ 16 декабря 2013

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

options = driver.find_elements_by_name_("XXX")
for option in options:
    if option.text == "XXXXXX":
        print(option.text)
        option.click()

Вы можете найти элементы по имени, XPath, id, ссылке и пути CSS.

1 голос
/ 26 октября 2011

Чтобы ответить на ваш вопрос о том, чтобы URL использовать для urllib, просто выполните этот код JavaScript:

url = browser.execute_script("return window.location;")
0 голосов
/ 22 октября 2011

Я бы порекомендовал получить источник с urllib и, если вы собираетесь анализировать, используйте что-то вроде Beautiful Soup .

import urllib

url = urllib.urlopen("http://example.com") # Open the URL.
content = url.readlines() # Read the source and save it to a variable.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...