28 de enero de 2022

Simple Web Scraper for Linux command line


 The Steps:

[1] download web text --->
[2] Select target text     --->
[3] Clean scraped text  --->
[4] Present result          --->
[5] Enjoy.


The System setup:

# aptitude install lynx

 

The Code:

    #!/bin/bash
    ##########################################
    # by www.misnotaslinux.blogspot.com 2022 #
    ##########################################

    url="https://PutWebUrlHere.html"

    from='Put here your starting text scrap from the web'

    to='Put here the End text of scraped text'

    web_scrap=`lynx -dump "$url" | sed -n /"$from"/,/"$to"/p | grep -v "$from" | grep -v "$to" | grep -v "*" | grep -v "_" | grep -v "^$"`

    echo "$web_scrap"

    exit 0


The Comments:

[1] El script descarga la web indicada en $url, en modo texto con lynx.

[2] Usando sed el script scrapea el texto de la web desde la cadena de texto $from hasta $to.

[3] Se limpia es texto scrapeado grep de las cadenas de texto $from y $to, así como de los caracteres no deseados: ("*", "_") y líneas en blanco ("^$"). 

Para identificar las cadenas de inicio y final del texto buscado hay que revisar previamente el texto generado por lynx de la web objetivo:

    $ lynx -dump "https://PutYourWebUrlHere.html"

Las cadenas de inicio y final deben ser lo más específicas posible, que no se repitan en el cuerpo del texto objetivo.

[4] Revisar el resultado y añadir | grep -v "cadena o caráctercon las cadenas o caracteres que queremos eliminar del texto resultante [5].


No hay comentarios:

Publicar un comentario