Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.

Reply
Syndicate_Admin
Administrator
Administrator

Error read_html con el script R en power BI

He hecho un guión R para raspar un sitio web determinado. Funciona bien cuando lo ejecuto en Rstudio. Ahora quiero integrarlo en un escritorio Power Bi para que mis compañeros de trabajo puedan trabajar con él (sin tener que usar Rstudio). Sin embargo, sigo recibiendo un error, parece que la función read_html no funciona.

BillyBouw_2-1615459487344.png

Mi guión original, que funciona en Rstudio. Utilizo un archivo .xlsx que contiene una lista de URLS (entrada.xlsx)

rm(list = ls())
library(rvest)
library(readxl)
library(xlsx)
library(rstudioapi)

# Set working directory and import URLs
setwd(dirname(getActiveDocumentContext()$path))
dfURL <- read_xlsx("Input.xlsx")

# Initiate dataframe
dfETA <- data.frame4, nrow = nrow(dfURL)))
colnames(dfETA) <- c("URL", "Vessel", "Destination", "ETA")
dfETA$URL <- dfURL$URL

1:nrow(dfURL)){
  # Get URL & load webpage
  url <- as.character(dfURL[i,])
  page <- read_html(url)
  
  # Extract CSS adresses
  CSSextract1 <- html_nodes(page,'.n3ata')
  CSSextract2 <- html_nodes(page,'.st')
  
  # Convert to text
  toText1 <- html_text(CSSextract1)
  toText2 <- html_text(CSSextract2)
  
  # Extract information from text
  destination <- trimws(toText1[1])
  ETA <- toText1[2]
  
  # Fill df with information
  dfETA$Vessel[i] <- toText2
  dfETA$Destination[i] <- destination
  dfETA$ETA[i] <- ETA
}
# Write to xlsx
write.xlsx(dfETA "Salida.xlsx", anexar = FALSE, row.names = FALSE)

Ya busqué mucho, una de las cosas que encontré es que debe señalar las ubicaciones de archivos y bibliotecas explícitamente. En power Bi, me aseguré de que las ubicaciones de la biblioteca son las mismas que las ubicaciones utilizadas por Rstudio (.libloc()) Además, antes de este error, Power Bi devolvió un error que no pudo encontrar el paquete xml2, lo instaló y cargué todo con los demás paquetes, el código resultante es donde estoy ahora y lo que produce el error. He tratado de hacer el código de tal manera, que quien esté dispuesto y capaz de ayudarme puede simplemente copiar y pegar el código, para que las ubicaciones de la biblioteca sean genéricas.

libloc_rvest <- find.package('rvest')
libloc_rvest <- substr(libloc_rvest, 1,nchar(libloc_rvest) - nchar("rvest"1)
libloc_readxl <- find.package("readxl")
libloc_readxl <- substr(libloc_readxl,1, nchar(libloc_readxl) - nchar("readxl"1)
libloc_rstudioapi <- find.package("rstudioapi")
libloc_rstudioapi <- substr(libloc_rstudioapi,1, nchar(libloc_rstudioapi) - nchar("rstudioapi"1)
libloc_xml2 <- find.package("xml2")
libloc_xml2 <- substr(libloc_xml2,1,nchar(libloc_xml2) - nchar("xml2"1)
biblioteca(rvest, biblioteca lib.loc=libloc_rvest)
(readxl, lib.loc=libloc_readxl)
biblioteca(rstudioapi, lib.loc=libloc_rstudioapi)
biblioteca(xml2, lib.loc=libloc_xml2) # Establecer directorio de trabajo e importar DIRECCIONES

URL
dfURL <- read_xlsx("N:/ETAscraper /ETAscraper/Input.xlsx") # Iniciar

dataframe
dfETAdata.frame(matrix(ncolnrownrow(dfURL)))
colnames(dfETA) <- c("URL""Vessel""Destination""ETA")
dfETA$URL <- dfURL$URL

paraen1 :nrow(dfURL)){
  ObtenerURL & cargar página web
  como.character(dfURL[i,])
  página <- read_html(url)
  
  Extraerdirecciones CSS
  CSSextract1 <- html_nodes(página,'.n3ata')
  CSSextract2 <- html_nodes(página,'.st')
  
  Convertir en texto
  aText1 <- html_text(CSSextract 1)
  toText2 <- html_text(CSSextract2)
  
  Extraer información del destino de texto
  <- trimws(toText1[1])
  ETA <- toText1[2]
  
  Llenar df con información
  DfETA$ Vessel[i] <- toText2
  dfETA$Destination[i] <- destination
  dfETA$ETA
} # Write to
xlsx#
write.xlsx(dfETA,"Output.xlsx", append = FALSE, row.names = FALSE)

Si alguien pudiera ayudarme, o señalarme en la dirección correcta, ¡eso sería muy apreciado!

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

No @BillyBouw,

Debe ser un error de Rvest, compruebe la referencia a continuación:

https://github.com/yusuzech/r-web-scraping-cheat-sheet/blob/master/README.md

Saludos
Kelly

¿Respondí a tu pregunta? ¡Marca mi puesto como solución!

Helpful resources

Announcements
September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 2025 Power BI update to learn about new features.

Top Kudoed Authors