¿Existe una biblioteca R para web scraping?

CRAN – Paquete RCurl
CRAN – XML ​​del paquete
y de
Vista de tareas de CRAN: tecnologías y servicios web
Análisis de datos de la web

  • txt, csv, etc .: puede usar read.csv () después de adquirir el archivo csv de la web a través de, por ejemplo, getURL () de RCurl. read.csv () funciona con http pero no https, es decir: read.csv (“http: // …”), pero no read.csv (“https: // …”).
  • El paquete repmis contiene un comando source_data () para cargar datos de texto sin formato desde una URL (http o https).
  • El paquete XML contiene funciones para analizar XML y HTML, y admite xpath para buscar XML (piense en expresiones regulares para cadenas). Una función útil para leer datos de una o más tablas HTML es readHTMLTable ().
  • scrapeR proporciona herramientas adicionales para extraer datos de documentos HTML y XML.
  • El paquete XML2R (que pronto estará en CRAN) es una colección de funciones convenientes para coaccionar XML en marcos de datos.
  • El rjson convierte el objeto R en objetos de notación de objetos Javascript (JSON) y viceversa.
  • Una alternativa al rjson es RJSONIO, que también convierte datos desde y hacia formato JSON (es rápido para el análisis).
  • Una alternativa al paquete XML es selectr, que analiza los selectores CSS3 y los traduce a expresiones XPath 1.0.
  • Formatos personalizados: algunas API web proporcionan formatos de datos personalizados que generalmente se modifican xml o json y se manejan mediante XML y rjson o RJSONIO, respectivamente.
  • Una alternativa a XML es selectr, que analiza los selectores CSS3 y los traduce a expresiones XPath 1.0. El paquete XML a menudo se usa para analizar xml y html, pero selectr traduce los selectores CSS a XPath, por lo que puede usar los selectores CSS en lugar de XPath. La extensión del navegador selectorgadget se puede utilizar para identificar elementos de la página.
  • RHTMLForms permite leer documentos HTML y obtener una descripción de cada uno de los formularios que contiene, junto con los diferentes elementos y campos ocultos.

Curl, HTTP, FTP, HTML, XML, SOAP

  • RCurl: un envoltorio de rizo de bajo nivel que permite componer solicitudes HTTP generales y proporciona funciones convenientes para buscar URI, obtener / publicar formularios, etc. y procesar los resultados devueltos por el servidor web. Esto proporciona un gran control sobre la conexión HTTP / FTP y la forma de la solicitud, al tiempo que proporciona una interfaz de nivel superior de la que está disponible solo con conexiones de socket R. También proporciona herramientas para la autenticación web.
  • httr: un contenedor ligero alrededor de RCurl que facilita muchas cosas, pero que aún le permite acceder a la funcionalidad de nivel inferior de RCurl. Tiene convenientes verbos http: GET (), POST (), PUT (), DELETE (), PATCH (), HEAD (), BROWSE (). Estas funciones de ajuste son más convenientes de usar, aunque menos configurables que sus contrapartes en RCurl. El equivalente de GET () de httr en RCurl es getForm (). Del mismo modo, el equivalente de POST () de httr en RCurl es postForm (). Los códigos de estado http son útiles para depurar llamadas http. Este paquete lo hace más fácil usando, por ejemplo, stop_for_status () obtiene el código de estado http de un objeto de respuesta y detiene la función si la llamada no fue exitosa. Ver también warn_for_status (). Tenga en cuenta que puede pasar opciones adicionales de Curl al parámetro de configuración en llamadas http.
  • El paquete XMLRPC proporciona una implementación de XML-RPC, un mecanismo de llamada a procedimiento remoto relativamente simple que utiliza HTTP y XML. Esto se puede utilizar para comunicarse entre procesos en una sola máquina o para acceder a servicios web desde R.
  • El paquete XMLSchema proporciona facilidades en R para leer documentos de esquema XML y procesarlos para crear definiciones de clases R y funciones para convertir nodos XML en instancias de esas clases. Proporciona el marco para la metacomputación con esquema XML en R
  • RTidyHTML interactúa con la biblioteca libtidy para corregir documentos HTML que no están bien formados. Esta biblioteca corrige errores comunes en documentos HTML.
  • SSOAP proporciona un mecanismo SOAP (Protocolo simple de acceso a objetos) del lado del cliente. Su objetivo es proporcionar una interfaz de alto nivel para invocar métodos SOAP proporcionados por un servidor SOAP.
  • Rcompression: interfaz con las bibliotecas zlib y bzip2 para realizar la compresión y descompresión en memoria en R. Esto es útil al recibir o enviar contenidos a servidores remotos, por ejemplo, servicios web, solicitudes HTTP a través de RCurl.
  • El paquete CGIwithR le permite a uno usar scripts R como programas CGI para generar contenido web dinámico. Los formularios HTML y otros mecanismos para enviar solicitudes dinámicas se pueden utilizar para proporcionar información a los scripts R a través de la Web para crear contenido que se determina dentro de ese script R.

Autenticación

  • El uso de recursos web puede requerir autenticación, ya sea a través de claves API, OAuth, combinación de nombre de usuario: contraseña o por otros medios. Además, a veces los recursos web que requieren autenticación se encuentran en el encabezado de una llamada http, lo que requiere un poco de trabajo extra. Claves API y nombre de usuario: los combos de contraseña se pueden combinar dentro de una url para una llamada a un recurso web (clave de API: foo.org; usuario / contraseña: Página en foo.org), o se pueden especificar mediante comandos en RCurl o httr. OAuth es el proceso de autenticación más complicado y se puede hacer más fácilmente usando httr. Vea las 6 demostraciones dentro de httr, tres para OAuth 1.0 (linkedin, twitter, vimeo) y tres para OAuth 2.0 (facebook, github, google). ROAuth es un paquete que proporciona una interfaz R separada para OAuth. OAuth es más fácil de hacer en httr, así que comienza allí.

Además de lo que Ajay ha mencionado, también puede verificar `rvest`: fácil raspado web con R.

More Interesting

¿Qué pila completa de desarrollo web permite el desarrollo más rápido?

¿Cuál fue su peor crisis en un entorno de producción y cómo la manejó?

¿Qué hace para que su software o aplicación web tenga la menor cantidad de errores posible y sea confiable y estable?

¿En qué se diferencian los sitios web (en términos de tecnologías web utilizadas) de 2013 de 2003?

Cómo implementar una aplicación web Java con Jetty incrustado en un VPS

¿Es posible identificar un navegador en particular en una computadora en particular?

¿En qué situaciones es NoSQL mejor que las bases de datos relacionales como SQL? ¿Cuáles son ejemplos específicos de aplicaciones donde el cambio a NoSQL arrojó ventajas considerables?

Aunque el código HTML es el mismo, ¿por qué la salida difiere en los diferentes navegadores web?

Cuántas mejoras e iteraciones importantes pasan las aplicaciones web exitosas antes (y si) se vuelven exitosas; ¿Y qué mejoras fueron?

¿Qué tipo de aplicaciones utiliza para realizar un seguimiento de los cómics web que lee?

¿Cuál es la tasa máxima de solicitudes que puede manejar una aplicación web?

¿Qué significa una configuración de producción para una aplicación web?

¿Es correcto que una aplicación web sea un software que nos permite acceder a un sitio web?

¿Qué software se usa comúnmente para el desarrollo de aplicaciones web alrededor de diciembre de 2015?

Para un tipo de aplicación de diario público principalmente monetizada con anuncios, ¿cuál construiría primero, con fondos limitados, un sitio web móvil HTML5 o una aplicación para iPhone?