На некоторых сайтах нам не сразу доступна нужная нам информация. Допустим нужно что-то написать или выбрать, потом кликнуть и только после этого появится нужная нам информация. Чтобы интерактивно работать с сайтом нам понадобится пакет RSelenium.
Установим и подгрузим пакет RSelenium.
Для его корректной работы вам понадобится установленная Java. Скачать ее можно с сайта.
Я буду показывать работу RSelenium в Chrome. Для корректной работы вам нужно указать его версию. Ее можно узнать в настройках.
driver <- rsDriver(browser=c("chrome"), chromever = '77.0.3865.40')
remote_driver <- driver[["client"]]
Некоторые команды.
remote_driver$open() # открыть браузер
remote_driver$close() # закрыть браузер
remote_driver$navigate("http://www.google.com") # перейти на указанный адрес
remote_driver$getCurrentUrl() # получить текуший url
remote_driver$navigate("http://www.yandex.com")
remote_driver$goBack() # вернуться на предыдушую страницу
remote_driver$goForward() # перейти на страницу вперед
remote_driver$refresh() # обновить страницу
remote_driver$maxWindowSize() # браузер на весь экран
remote_driver$screenshot(display = FALSE)
Попробуем перейти на сайт Google и что-то поискать.
remote_driver$open()
remote_driver$navigate("http://www.google.com")
webElem <- remote_driver$findElement(using = 'xpath', "//*[@id='tsf']/div[2]/div[1]/div[1]/div/div[2]/input") # найти элемент по XPATH
webElem$sendKeysToElement(list("Язык программирования R")) # ввести текст
webElem$sendKeysToElement(list(key = 'enter'))
# webElem$clickElement() # кликнуть по элементу
Получим HTML-страницу.