s0rg, ну вообще задача - собрать определенные данные со страницы…
pyuser, спасибо. Уже накатал кое-что:
# Пробуем получить html-код с выполненным js, используя Selenium WebDriver.
# innerHTML will return the inner HTML of this element,
# which contains all HTML tags inside
# http://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/
# http://stackoverflow.com/questions/7263824/get-html-source-of-webelement-in-selenium-webdriver
# http://internetka.in.ua/selenium-webdriver-normalization/
print ('----- Загрузка html-кода с выполненным js с помощью Селениума')
from selenium import webdriver
from selenium.webdriver.common.by import By
try:
url = "http://***"
wd = webdriver.Firefox()
wd.get(url)
s = wd.find_element(by=By.ID, value="***").get_attribute('innerHTML')
## s = wd.find_element_by_xpath("//html").get_attribute('innerHTML')
wd.quit()
except Exception as e:
print("Неизвестная ошибка при загрузке и декодировании страницы в строку\n"
+ "Возможно сервер не доступен" + e.args)
# Здесь надо прописать код по завершении работы приложения
print ('----- Html-код с выполненным js получен')
И заметил, что html-код, полученный методом .page_source отличается от .get_attribute('innerHTML'): в тэгах параметры идут в другой очереди (например href раньше, чем другой). Может еще что-то. Так-то он более оптимален?
Я не профессионал, так что в моем коде могут быть везде ошибки, или он не оптимален.У меня вопросы:
- почему так плохо с документацией: и с python 3 и методы selenium. То ли я плохо ищу, или надо англ. хорошо знать?
- можно как-то сделать невидимым селениум браузер? (или какой другой)
- wd = webdriver.PhantomJS() - это обычный браузер или что? Почему эта строчка вызывает ошибку?
- встроенный метод в питоне WebBrowser - из него можно получить outerHtml?
- как более оптимально получать outerHtml?
Теряюсь
