Как перейти по созданной вами ссылке для очистки данных? Затем, как вы удаляете данные с новой страницы?

#r #web-scraping #web-scraping-language

Вопрос:

Это образец кода, который я создал. Мне удалось создать новую ссылку, но я не понимаю, как перейти по ссылке и удалить данные из следующей ссылки.

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

url<-"https://www.indeed.com/jobs?q=data analystamp;l=San Diego, CAamp;vjk=0c2a6008b4969776"
page<-xml2::read_html(url)#function will read in the code from the webpage and break it down into different elements (<div>, <span>, <p>, etc.

#get job title
title<-page %>%
  html_nodes(".jobTitle") %>%
  html_text()
  
#get company Location
loc<-page %>%
  html_nodes(".companyLocation") %>%
  html_text()

#job snippet
page %>%
  html_nodes(".job-snippet") %>%
  html_text()

#Get link 
desc<- page %>%
  html_nodes("a[data-jk]") %>%
  html_attr("href") 

# Create combine link 
combined_link <- paste("https://www.indeed.com", desc, sep="")
 

Как мне перейти по комбинированной ссылке и удалить данные с новой страницы и можно ли это сделать без использования функции?

Комментарии:

1. Разве ты не можешь пользоваться read_html(combined_link) , как в первый раз? Возможно, я запутался в том, что вы собираетесь здесь делать.

2. Спасибо, да, я пробовал это, но я получаю сообщение об ошибке «Ошибка: x должна быть строка длиной 1″.

3. страница 1 <- html_session(combined_link[[1]]) страница 1 %>% html_nodes(«.iCIMS_JobContent, #jobDescriptionText») %<- html_session(combined_link[[1]]) страница 1 %>>% html_text() #этот код работает, но теперь я хотел бы создать функцию#, которая будет извлекать содержимое для каждой страницы, используя эту информацию

4. ret <- lapply(paste0("https://www.indeed.com", desc), xml2::read_html) вернет список возвращаемых страниц, для которых вы можете индивидуально очистить нужные вам данные.

5. Не смущайся! Не уверен точно (я не запускаю ваш код), но, возможно lapply(setNames(nm=paste0("https://www.indeed.com", desc)), xml2::read_html) , для исходного вызова, или если вы уже созданы ret , можете ли вы просто names(ret) <- desc или аналогично? (Я предполагаю, что название очевидно в элементах desc . Если нет, то это просто другой вопрос, и … к сожалению, я не запустил ваш код и в данный момент не могу …)