Web Scraping usando Ruby – Tutorial

Publicado: 2017-08-24

El notable aumento y el crecimiento exponencial de los datos web han abierto nuevas vías para varios sectores. Desde las unidades de fabricación hasta los sectores de servicios, los datos son un componente esencial adoptado por las empresas de todo el mundo para mantenerse relevantes en los tiempos cambiantes. Los datos web no solo contienen una mina de oro de información sobre la competencia y el mercado, sino que también ofrecen información que se puede utilizar para mejorar los procesos y las operaciones internas.

El web scraping ayuda a extraer datos en línea específicos para su uso posterior por parte del motor de análisis o la herramienta de BI. El objetivo del web scraping sigue siendo variado:

  • La extracción de datos es una forma efectiva de publicitar su negocio y promocionar productos/servicios
  • Los usuarios, consumidores y visitantes de la web pueden obtener la información deseada sobre un servicio o producto.
  • Las empresas pueden obtener inteligencia competitiva sobre las estrategias y los planes establecidos para aumentar su cuota de mercado respectiva.
  • Las marcas pueden conocer la percepción general en torno a su marca a través de las interacciones entre las personas en las redes sociales. Esto ayuda a los equipos de marketing a diseñar e implementar mensajes de marketing relevantes destinados específicamente a la personalidad de esta audiencia, lo que aumenta la probabilidad de conversión.
  • Las empresas pueden obtener más claridad sobre las necesidades, los puntos débiles y las preferencias de su público objetivo. Luego, pueden impulsar el desarrollo de productos en la dirección correcta con esta valiosa inteligencia.

Imagine los beneficios si pudiéramos estructurar los datos web, eliminar el ruido y exportarlos a formatos legibles por máquina. Veamos cómo se puede hacer esto usando Ruby.

Elección del script de codificación.

La extracción de datos y la implementación real de las prácticas de web scraping no es un asunto fácil. El conocimiento elemental de CSS, HTML y el script de codificación correcto hará que su viaje sea sencillo. Su elección del script de codificación jugará un papel crucial en este contexto. Averigüemos por qué Ruby está causando revuelo en el mercado.

Si planea lanzar su primer programa de web scraping, Ruby puede desempeñar el papel de un lenguaje de secuencias de comandos confiable. Bastantes razones son responsables de la popularidad sin igual de este lenguaje, y las siguientes razones lo ayudarán a comprender por qué es tan efectivo.

  • Un script poderoso : Ruby-On-Rails es un script muy poderoso y efectivo para el web scraping. Para principiantes y novatos, este idioma en particular ha demostrado ser un recurso sólido.
  • Comunidad confiable : Ruby viene junto con un sólido equipo de desarrolladores que forman una comunidad confiable y altamente confiable. Con millones de documentaciones, ¡ningún problema será enorme para usted!
  • Fácil instalación : el procedimiento de instalación está bien documentado y es bastante fácil de seguir.

Estos son algunos de los factores que hacen de Ruby una opción indispensable para el web scraping. La configuración y la instalación deben realizarse de manera óptima, ya que estos procesos son fundamentales para la ejecución de los procesos de extracción de datos. Aquí hay un tutorial completo para ayudarlo a través del proceso.

la guía paso a paso

Antes de comenzar, seamos claros sobre ciertos puntos. Este tutorial está dirigido a usuarios de Mac, si usa una máquina diferente, el proceso de configuración inicial podría ser ligeramente diferente. En segundo lugar, el programa utiliza Nokogiri, que puede convertir páginas web en 'objetos Ruby', lo que simplifica el proceso de raspado web. Con estos dos factores en mente, puedes embarcarte en tus proyectos.

En esta guía, recopilaremos los titulares de los primeros 100 listados en olx para autos usados.

El proceso de configuración

Estos son los requisitos básicos para desarrollar una configuración completa para la extracción web usando Ruby.

  • Su computadora, ya sea una computadora de escritorio o una computadora portátil, debe tener Ruby. Si eres leal a Mac, entonces la mitad del trabajo está hecho.
  • Necesitarás un editor de texto. Eso es necesario para escribir los comandos del programa. Si su computadora no tiene una opción incorporada, intente descargar Sublime Text. Con funciones emocionantes y controles geniales, este editor de texto hará que la codificación sea emocionante e interesante.
  • Otro requisito es un conocimiento profundo del uso de HTML y CSS. Si planea dominar el arte del web scraping, el conocimiento de CSS y HTML será crucial.
  • Infórmese sobre Ruby. Un poco de información es esencial en este contexto. Puede consultar algunos de los cursos en línea y mejorar su base de conocimientos. Con estos procesos y factores establecidos, será el momento de comenzar con los pasos cruciales.

Paso 1: Instalación de dependencias

Durante el proceso de instalación, asegúrese de obtener información completa sobre las tres Ruby Gems útiles. Estas tres opciones incluyen:

  • Noko Giri
  • HTTParty
  • Palanca

Como ya explicamos un poco sobre Nokogiri, analicemos HTTParty y Pry. HTTParty es una gema que nuestro raspador web utilizará para enviar solicitudes HTTP a las páginas que estamos raspando. Usaremos HTTParty para enviar solicitudes GET, que devolverán todo el contenido HTML de la página como una cadena. Para la depuración, usamos Pry, que es una gema de rubí. Nos ayudará a analizar el código de la página web y es un componente esencial en esta configuración.

Siga los comandos a continuación y ejecútelos en su máquina para instalar estas gemas en su computadora.

joya instalar nokogiri

fiesta de instalación de gemas

palanca de instalación de gemas

Paso 2: La creación de archivos scraper

Deberá crear una carpeta llamada nokogiri_tutorial en cualquiera de las ubicaciones preferidas de su computadora. El escritorio es el lugar perfecto para hacerlo. El siguiente paso es descargar un editor de texto como 'Sublime Text' o cualquier otra opción de su elección y guardar el archivo en esta carpeta llamada "web_scraper.RB". Una vez que complete estos pasos, estará listo para trabajar en las dependencias.

Paso 3: Envío de solicitudes HTTP a la página

Comience creando una operación variable llamada 'página' y asegúrese de que sea igual a la solicitud HTTParty GET de la página que estamos raspando.

En este caso: https://www.olx.in/all-results/q-cars/

Después de esto, puede ingresar “Pry. inicio (vinculante).” Navegue y busque la carpeta marcada como un archivo web_scraping.Rb. Guárdelo de inmediato en su escritorio y abra la terminal ingresando este comando.

cd escritorio/nokogiri_tutorial

Su programa de web scraping está listo para ser implementado. Puede ejecutar este comando y ejecutarlo:

Rubí web_scraper.RB

El terminal debería transformarse en Pry, y es esencial verificar el diseño antes de trabajar en otros procesos. Puedes pasar al siguiente paso. Pero, antes de hacer eso, asegúrese de escribir 'salir' en el terminal elegido, deje Pry y luego regrese a la ubicación original de la carpeta del programa.

Paso 4: pasar a NokoGiri

El objetivo aquí es convertir y cambiar primero estos listados de autos a objetos NokoGiri, ya que eso es crucial para el análisis. La creación de variables es importante y tendrá que desarrollar una nueva con el nombre "parse_page". Nokogiri tiene una forma distintiva de convertir cadenas HTML en objetos Nokogiri. Puede dejar la palanca en la parte inferior del código.

El siguiente paso será guardar el archivo que contiene el comando Ruby. Pry se abrirá automáticamente y se debe ingresar una nueva variable "parse_page". Esto devolverá la página Olx como un objeto Nokogiri.

Continúe y cree un archivo HTML en la misma carpeta con el nombre 'cars.html' y copie y pegue los resultados del comando parse_page en este archivo. Estos datos HTML formateados serán útiles como referencia más adelante.

Antes de comenzar con el siguiente paso, sal de Pry en tu terminal.

Paso 5: análisis de datos

El análisis de datos requiere un conocimiento elemental de programación y codificación. Dado que desea extraer los textos de los titulares de todos los listados de automóviles, el archivo cars.html será útil para realizar comprobaciones cruzadas. Ubique los elementos cruciales de la carpeta y realice inspecciones usando la 'herramienta de inspección de elementos', o también puede ver el 'código fuente de la página'.

Dado que encontramos que los listados están dentro de un div con el nombre de clase 'contenido', estos son los comandos que siguen :

parse_page.css('.contenido')

parse_page.css('.contenido').css('.fila').css('.hdrlnk')

coches_matriz

Verifique los diseños de codificación y las matrices cada vez que ejecute el comando. Una vez que se completa el análisis, deberá exportar conjuntos de datos a archivos CSV.

Paso 6: Exportación de archivos de datos a CSV

Cuando llegue al paso 6, debería haber completado el proceso de extracción con éxito y los datos no estructurados se han convertido en conjuntos de datos estructurados. Ahora volvamos a la terminal. Salga de Pry si todavía está en él para que su terminal esté en la carpeta nokogiri_tutorial que contiene el programa de extracción y el archivo cars.html. Ahora escribe el siguiente comando:

toque coches.csv

Ahora te quedará un archivo CSV en blanco en el que puedes guardar los datos de cars_array. Ahora puede escribir una secuencia de comandos simple para escribir estos datos en nuestro nuevo archivo CSV y tiene sus datos estructurados de listados de automóviles en un archivo CSV. Esto hará que sea más fácil de procesar y manipular cuando quieras hacerlo.

Pensamientos de despedida

Con suerte, esto debería haberle dado una idea aproximada de cómo puede raspar un sitio web usando Ruby. Es hora de explorar y rastrear sitios más complejos y desafiantes usando esta habilidad recién dominada.