Ошибка: «NA» не существует в текущем рабочем каталоге (Webscraping) - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь отсканировать данные по следующему адресу: https://university.careers360.com/colleges/list-of-degree-colleges-in-India Я хочу нажать на название каждого колледжа и получить конкретные данные для каждого колледжа.

Первое, что я сделал, былособрать все URL колледжа в векторе -:

#loading the package:
library(xml2)
library(rvest)
library(stringr)
library(dplyr)

#Specifying the url for desired website to be scrapped
baseurl <- "https://university.careers360.com/colleges/list-of-degree-colleges-in-India"

#Reading the html content from Amazon
basewebpage <- read_html(baseurl)

#Extracting college name and its url
scraplinks <- function(url){
   #Create an html document from the url
   webpage <- xml2::read_html(url)
   #Extract the URLs
   url_ <- webpage %>%
   rvest::html_nodes(".title a") %>%
   rvest::html_attr("href")  
   #Extract the link text
   link_ <- webpage %>%
   rvest::html_nodes(".title a") %>%
   rvest::html_text()
   return(data_frame(link = link_, url = url_))
}

#College names and Urls
allcollegeurls<-scraplinks(baseurl)

Работает нормально до сих пор, но когда я использую read_html для каждого URL, он показывает ошибку.

#Reading the each url
for (i in allcollegeurls$url) {
  clgwebpage <- read_html(allcollegeurls$url[i])
}

Ошибка: «NA» не существует в текущем рабочем каталоге («C: / Users / User / Documents»).

Я даже использовал команду «break», но все равно та же ошибка -:

#Reading the each url
for (i in allcollegeurls$url) {
  clgwebpage <- read_html(allcollegeurls$url[i])
  if(is.na(allcollegeurls$url[i]))break
}

Пожалуйста, помогите.

Публикация str всех коллежей по запросу -:

> str(allcollegeurls)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   30 obs. of  2 variables:
 $ link: chr  "Netaji Subhas Institute of Technology, Delhi" "Hansraj 
College, Delhi" "School of Business, University of Petroleum and Energy 
Studies, D.." "Hindu College, Delhi" ...
 $ url : chr  "https://www.careers360.com/university/netaji-subhas- 
 university-of-technology-new-delhi" 
"https://www.careers360.com/colleges/hansraj-college-delhi" 
"https://www.careers360.com/colleges/school-of-business-university-of- 
 petroleum-and-energy-studies-dehradun" 
"https://www.careers360.com/colleges/hindu-college-delhi" ...

1 Ответ

0 голосов
/ 04 февраля 2019

Эта работа,

purrr::map(allcollegeurls$url, read_html)

функция карты: функции карты преобразуют свои входные данные, применяя функцию к каждому элементу и возвращая вектор такой же длины, что и входной.Я люблю избегать for использования в R.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...