[英]rvest scraping html content values
我正在嘗試抓取以下頁面: 鏈接以創建一個具有 6 列的數據框:位置、公司和元數據 (1-5)。 不幸的是,我不知道如何捕獲content
的值,例如<meta itemprop="jobLocation" content="Tauragė" />
所以值 Tauragė 將用於創建我的數據框(在本例中)。
我的初始代碼:
if(!require("tidyverse")) install.packages("tidyverse"); library("tidyverse")
if(!require("rvest")) install.packages("rvest"); library("rvest")
# setting url and reading html code
url <- "https://www.cv.lt/employee/announcementsAll.do?regular=true&salaryInterval=-1&interval=2&ipp=1000"
html <- read_html(url, encoding = "utf-8")
# creating a dataframe of ads
ads <- html %>%{
data.frame(
position=html_nodes(html, "tbody p a:nth-child(1)") %>% html_text(),
company=html_nodes(html, "tbody p a:nth-child(2)")%>% html_text(),
meta1=...
meta2=...
meta3=...
meta4=...
meta5=...
)}
html代碼示例:
<td>
<p itemscope itemtype="http://schema.org/JobPosting">
<a href="/valstybes-tarnyba/vsi-taurages-rajono-pirmines-sveikatos-prieziuros-centro-direktorius-taurageje-2-338912727/?sri=83" target="_blank" itemprop="title" onclick="$(this).parents('tr.data').addClass('read');">VšĮ Tauragės rajono pirminės sveikatos priežiūros centro direktorius</a>
<a href="/viesoji-istaiga-taurages-rajono-pirmines-sveikatos-prieziuros-centras-darbo-skelbimai" target="_blank" itemprop="hiringOrganization" itemscope itemtype="http://schema.org/Organization"><span itemprop="name">Viešoji įstaiga Tauragės rajono pirminės sveikatos priežiūros centras</span></a>
<meta itemprop="jobLocation" content="Tauragė" />
<meta itemprop="datePosted" content="2019-08-22" />
<meta itemprop="employmentType" content="FULL_TIME" />
<meta itemprop="validThrough" content="2019-09-06T00:00:00.000" />
<meta itemprop="url" content="https://www.cv.lt/valstybes-tarnyba/vsi-taurages-rajono-pirmines-sveikatos-prieziuros-centro-direktorius-taurageje-2-338912727" />
</p>
</td>
<td>
你可以運行這個,
my_content <- html %>% html_nodes("tbody p meta") %>% html_attr("content")
之后,通過索引它們中的每一個,您可以將它們拆分為meta1、meta2、...meta5 之類的,
index <- rep(1:5,101)
meta <- data.frame(Meta= my_content,Index=index)
meta1 <- meta[meta$Index==1,]
meta2 <- meta[meta$Index==2,]
meta3 <- meta[meta$Index==3,]
meta4 <- meta[meta$Index==4,]
meta5 <- meta[meta$Index==5,]
編輯 :
另一種方法是在html_nodes()
使用itemprop
值
html %>% html_nodes("[itemprop='jobLocation']") %>% html_attr("content")
只為您提供Meta1 。 如果您為每個Meta使用itemprop
值,您可以像這樣獲取其中的數據,
meta1 <- html %>% html_nodes("[itemprop='jobLocation']") %>% html_attr("content")
meta2 <- html %>% html_nodes("[itemprop='datePosted']") %>% html_attr("content")
meta3 <- html %>% html_nodes("[itemprop='employmentType']") %>% html_attr("content")
meta4 <- html %>% html_nodes("[itemprop='validThrough']") %>% html_attr("content")
meta5 <- html %>% html_nodes("[itemprop='url']") %>% html_attr("content")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.