【问题标题】:How to scrape company ratings from an Indeed job site in R如何从 R 中的 Indeed 工作网站上抓取公司评级
【发布时间】:2020-03-19 19:45:40
【问题描述】:

我从未使用过 HTML 或 CSS,但我知道 R,所以我在网上查看了几种抓取方法,并在 Stack 中查看了在 R 中执行此操作的方法。我一直在从职位列表页面中提取公司评级时遇到问题。我得到character(0),在示例网址中,该公司的评级为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?谢谢!

【问题讨论】:

    标签: html css r web-scraping rvest


    【解决方案1】:

    您似乎有错误的 xpath。通过查看源文档,您要查找的值包含在具有itemprop 属性"ratingValue"meta 标记的content 属性中。

    以下是使用您问题的网址的可重复工作示例:

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

    【讨论】:

    • 我在 chrome 上使用了一个扩展来获取 xpath,其他都非常准确,不知道这是怎么出错的。但是谢谢艾伦。非常感谢您的回答!
    猜你喜欢
    • 2021-10-10
    • 2023-02-24
    • 1970-01-01
    • 2020-01-26
    • 2019-12-06
    • 1970-01-01
    • 2018-03-12
    • 2021-02-20
    • 1970-01-01
    相关资源
    最近更新 更多