Как перейти от URL-адресов в RData к очистке в RSelenium? (защищенный паролем сайт) - PullRequest
0 голосов
/ 06 мая 2019

У меня есть несколько URL-адресов из газеты. Эти URL-адреса в формате RData. Я пытаюсь почистить новости от http://politiken.dk/arkiv/ Это сайт, который требует пароль и логин. У меня есть это.

Я написал код, чтобы получить доступ к сайту в целом, и он работает.

Теперь мне нужно взять текст каждой новости на нескольких страницах. URL-адреса и нормальный код (если мне не нужен пароль), у меня есть. Но это не работает, поэтому я думаю, что мне нужно использовать RSelenium, чтобы получить все тексты внутри URL.

Это будет код без использования RSelenium

headlines <- rep("",nrow(politiken.unique))
for(i in 1:nrow(politiken.unique)){
  try({
    text <- read_html(as.character(politiken.unique$urls[i])) %>%
      html_nodes(".summary__p") %>% 
      html_text(trim = T) 
    headlines[i] = paste(text, collapse = " ")
  })
}

Но, очевидно, это не работает с RSelenium.

У меня пока что работает (логин на сайте):

# Login in the website
url <- "https://medielogin.dk/politiken/login?redirect=%2Fopenid%2Fendpoint%3Fopenid.ns%3Dhttp%3A%252F%252Fspecs.openid.net%252Fauth%252F2.0%26openid.claimed_id%3Dhttp%3A%252F%252Fspecs.openid.net%252Fauth%252F2.0%252Fidentifier_select%26openid.identity%3Dhttp%3A%252F%252Fspecs.openid.net%252Fauth%252F2.0%252Fidentifier_select%26openid.return_to%3Dhttps%3A%252F%252Fpolitiken.dk%252F%253Fpolid_return%253D1556061648%26openid.realm%3Dhttps%3A%252F%252Fpolitiken.dk%26openid.assoc_handle%3D7FNp!IAAAAJOSsCUfDPIhEzFBywNx1aXHKOZanVsMLPzmtapZJI3tQQAAAAEvGB5AgUqaWQPLeSFCYZf9FrsoqDOLz1jwhFWSebEvBo2JaUdfcjULF5tkWHI4GDSYH04oXa8S0roaQVQuJMwA%26openid.mode%3Dcheckid_setup%26openid.ns.ext1%3Dhttp%3A%252F%252Fopenid.net%252Fsrv%252Fax%252F1.0%26openid.ext1.brand%3Dpolitiken"

rd <- rsDriver(browser=c("chrome"), chromever="74.0.3729.6")
driver = rd[['client']]
driver$navigate("https://medielogin.dk/politiken/login?redirect=%2Fopenid%2Fendpoint%3Fopenid.ns%3Dhttp%3A%252F%252Fspecs.openid.net%252Fauth%252F2.0%26openid.claimed_id%3Dhttp%3A%252F%252Fspecs.openid.net%252Fauth%252F2.0%252Fidentifier_select%26openid.identity%3Dhttp%3A%252F%252Fspecs.openid.net%252Fauth%252F2.0%252Fidentifier_select%26openid.return_to%3Dhttps%3A%252F%252Fpolitiken.dk%252F%253Fpolid_return%253D1556061648%26openid.realm%3Dhttps%3A%252F%252Fpolitiken.dk%26openid.assoc_handle%3D7FNp!IAAAAJOSsCUfDPIhEzFBywNx1aXHKOZanVsMLPzmtapZJI3tQQAAAAEvGB5AgUqaWQPLeSFCYZf9FrsoqDOLz1jwhFWSebEvBo2JaUdfcjULF5tkWHI4GDSYH04oXa8S0roaQVQuJMwA%26openid.mode%3Dcheckid_setup%26openid.ns.ext1%3Dhttp%3A%252F%252Fopenid.net%252Fsrv%252Fax%252F1.0%26openid.ext1.brand%3Dpolitiken")

user = driver$findElement(using='css selector','input#Username')
driver$mouseMoveToLocation(webElement=user)
driver$click()
driver$sendKeysToActiveElement(list('email'))

pass = driver$findElement(using='css selector', 'input#Password')
driver$mouseMoveToLocation(webElement=pass)
driver$click()
driver$sendKeysToActiveElement(list('password'))

login = driver$findElement(using = 'css selector', 'button.ml-submit')

driver$mouseMoveToLocation(webElement=login)
driver$click()

Как я могу получить тексты внутри URL на сайте, используя RSelenium ?????

...