Web Scrapping es una herramienta o habilidad bastante interesante y poderosa para tener en el kit de herramientas de un programador. Ayuda a analizar datos y obtener información en varios formatos. Web Scraping es un proceso en el que un usuario obtiene el contenido de un sitio web utilizando algún patrón en esas etiquetas HTML y el contenido deseado para ser obtenido o extraído.
Para este artículo, nuestro objetivo es obtener el significado de una palabra ingresada por el usuario desde el sitio web de Wikipedia. Necesitamos imprimir solo el significado de la palabra de las etiquetas HTML que contiene. Para hacer todo esto, debemos tener un buen conocimiento de HTML y algunas herramientas básicas de Linux, como cURL, grep, sed y otras.
Inspección del sitio web de destino:
Para empezar, desechando el sitio web, primero, es absolutamente importante inspeccionar el sitio web y ver su código fuente. Para eso, podemos hacer uso de la herramienta Inspeccionar en nuestros navegadores. Simplemente haga clic derecho en el sitio web que está viendo o en el sitio web para raspar, aparece una lista de opciones frente a usted. Debe seleccionar la opción Inspeccionar (también Shift + control + I), esto abrirá una ventana lateral con una gran cantidad de opciones. Simplemente tiene que seleccionar Elementos en la parte superior de los menús. El código que verá es el código fuente del sitio web. No, no creas que puedes cambiar el contenido del sitio web desde aquí.
Ahora tenemos que analizar el sitio web con el contenido que queremos raspar. Puede continuar haciendo clic en la opción o icono «seleccione el elemento en la página para inspeccionarlo» en la esquina superior izquierda. Esto le permitirá inspeccionar el elemento particular que seleccionó en la página web. Ahora puede ver la etiqueta del elemento, la identificación, la clase y otros atributos necesarios para obtener el contenido del elemento.
Acceso al sitio web desde la línea de comandos/terminal:
Ahora que se comprende la estructura del sitio web, podemos movernos para desecharlo. Para eso, necesitamos tener el contenido del sitio web en nuestra máquina local. Primero, necesitamos acceder al sitio web desde otro lugar, no desde el navegador, porque no se puede copiar y pegar contenido desde allí. Así que usemos la línea de comandos aquí. Tenemos una herramienta popular conocida como cURL, que significa URL del cliente. La herramienta obtiene el contenido de la URL proporcionada. También tiene varios parámetros o argumentos que se pueden usar para modificar su salida. Podemos usar el comando
$ curl -o output.txt https://en.wikipedia.org/wiki/Data
Ejemplo:
El comando anterior obtiene la página HTML para la palabra Computadora, podría ser cualquier palabra que esté buscando.
Ahora, tenemos que filtrar la etiqueta como se muestra en la figura anterior, aquí hemos usado Regex para eliminar las etiquetas <> del archivo y, por lo tanto, también se elimina cualquier elemento intermedio y solo obtenemos texto puro, pero también puede contener etiquetas especiales. caracteres y símbolos. Para eliminar eso, usaremos nuevamente grep y filtraremos el significado fino en nuestro archivo.
cat output.txt | grep "<p>" | sed 's/<[^>]*>//g'
Hacer el guión de Shell:
#!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $(basename $0) 'word '" exit 1 if curl=$(which curl) outfile="output.txt" word=$(echo $1) url="https://en.wikipedia.org/wiki/$word" echo $url curl -o "output.txt" $url function strip_html(){ grep "<p>" $outfile | sed 's/<[^>]*>//g' > temp.txt && cp temp.txt $outfile } function res(){ echo "Answer" while read result; do echo "${result}" done < $outfile } strip_html res
Producción: