html - 如何从 R 中的 Indeed 工作网站上抓取公司评级
问题描述
我从未使用过 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
?谢谢!
解决方案
你似乎有错误的xpath。通过查看源文档,您要查找的值包含在具有content
属性的meta
标签的itemprop
属性中"ratingValue"
。
以下是使用您问题的 url 的可重复工作示例:
read_html(url) %>%
html_nodes(xpath = "//meta[contains(@itemprop, 'ratingValue')]") %>%
html_attr("content") %>%
unique()
#> [1] "4.0"
推荐阅读
- python - 导入 Paraview 时,python 出现这个错误该怎么办?
- asp.net-core - Razor 页面 Datatables.net Ajax 回发
- python - pip install paramiko 出现错误 - ModuleNotFoundError: No module named 'zlib'
- azure - Spring Boot 使用 HikariCP 通过 JDBC 超时连接到 Vertica
- visual-studio-code - 如何以独立方式运行代码格式化程序(不执行 IDE)?
- html - Bootstrap 4.6 网格系统/Flexbox 不受父元素高度的限制?
- python - 如何在python tkinter中使用while循环实现多线程停止按钮
- angular - 从子组件在父组件中打开 Modal
- flutter - Flutter:[文件路径和名称].java 使用或覆盖了已弃用的 API
- python - 当父类定义了__call__时如何打印子类的签名