Как вычистить рейтинги компании с сайта действительно работы в R - PullRequest
0 голосов
/ 19 марта 2020

Я никогда не работал с HTML или CSS, но я знаю R, поэтому я посмотрел на несколько методов очистки в Интернете и здесь, в Stack, чтобы сделать это в R. У меня постоянно возникают проблемы с извлечением рейтингов компаний из работы страница со списком. Я получаю character(0), где, как в примере URL, компания имеет рейтинг 4.0.

Вот моя попытка:

library(rvest)
library(tidyverse)
library(xml2)

#example URL
url<- "https://www.indeed.com/viewjob?jk=a25a91736b1f7042&tk=1e3q54n49heai800&from=serp&vjs=3&advn=8876452989351355&adid=95236293&sjdu=TDSJNe66qIM3gcXFOG94m--bPylNW2vvO3WAHEKN7JhCAD1FQ-2FXD1gQyElsLNkg6gfXO2CD3rQYOYjO9iXITyFdYOp8tCECkHuDmf3Og8qdMmciGFIv2ahigETjLmuY8uXdLjnQTg4__yOXqHJkA"

page<- read_html(url)


page%>%
   rvest::html_nodes("span")  %>%
   rvest::html_nodes(xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "ratingsContent", " " ))]')%>%
   rvest::html_text()

#Output is 
#character(0)
#Where as it should have been 4.0!

Может ли кто-нибудь показать мне, как его получить, и если компании не хватает рейтинга, как мне вернуть NA? Спасибо!

1 Ответ

1 голос
/ 19 марта 2020

У вас неправильный путь к xpath. При просмотре исходного документа искомое значение содержится в атрибуте content тегов meta, которые имеют атрибут itemprop "ratingValue".

. Ниже приведен рабочий воспроизводимый пример. используя URL вашего вопроса:

read_html(url) %>%
  html_nodes(xpath = "//meta[contains(@itemprop, 'ratingValue')]") %>%
  html_attr("content") %>%
  unique()
#> [1] "4.0"
...