Проблема с селектором CSS в RSelenium - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь извлечь имя и уровень (NU, UU, OU, ...) из покемонов на этой веб-странице (https://www.smogon.com/dex/ss/pokemon/). Код, который я использую:

library(tidyverse, pos = 3)
library(rvest, pos = 4)
library(RSelenium, pos = 5)
library(XML, pos = 6)

rd <- rsDriver(browser = "firefox", port = 4561L)
remDr <- rd[["client"]]

remDr$navigate("https://www.smogon.com/dex/ss/pokemon/")

webElem <- remDr$findElement(using = 'css selector',
                             "#container > div > main > div > div > div:nth-child(1) > div.PokemonAltRow-name > a")
webElem$getElementAttribute("href")

Однако я не могу go пройти nth-child (10), даже если у меня есть 1000 записей в таблице. Я заметил, что номера nth-child сбрасываются при прокрутке страницы, поэтому я попробовал следующее:

body <- remDr$findElement("css", "body")
body$sendKeysToElement(list(key = "home"))
body$sendKeysToElement(list(key = "space"))
webElem <- remDr$findElement(using = 'css selector',
                             "#container > div > main > div > div > div:nth-child(1) > div.PokemonAltRow-name > a")
webElem$getElementAttribute("href")

Но страница, кажется, не прокручивается вниз с помощью пробела, даже если я go в браузер я могу сделать это вручную. Я также пробовал использовать down_arrow вместо пробела, но он все равно не работал.

Любая помощь приветствуется. У меня почти нет опыта работы со соскобами, html, xml, et c.

...