👹SCRAPING WEB CON "BS4", otra"RE" Y SIN MODULOS P4IscrapingCbs4.py

CON BS4:

// Some code

```python
#?MI PROGRAMA PRINCIPAL PARA BUSCAR; 
#!programa de raspado web o scrapinmg usando Beutifulsoup para tal fin - P4IscrapingCbs4.py - By P4IM0N

#----------------------------------------------------------------------------------------------
from tabulate import tabulate
import requests
from bs4 import BeautifulSoup

#----------------------------------------------------------------------------------------------
COLOR_ROJO = "\033[91m"
COLOR_AZUL = '\033[94m'
COLOR_RESET = "\033[0m"

#----------------------------------------------------------------------------------------------
banner = f'''

__________  _____ .___                                  .__               ____________.             _____  
\______   \/  |  ||   | ______ ________________  ______ |__| ____    ____ \_   ___ \_ |__   ______ /  |  | 
 |     ___/   |  ||   |/  ___// ___\_  __ \__  \ \____ \|  |/    \  / ___\/    \  \/| __ \ /  ___//   |  |_
 |    |  /    ^   /   |\___ |\  \___|  | \// __ \|  |_> >  |   |  \/ /_/  >     \___| \_\ |\___ \/    ^   /
 |____|  \____   ||___/____  >\___  >__|  (____  /   __/|__|___|  /\___  / \______  /___  /____  >____   | 
              |__|         \/     \/           \/|__|           \//_____/         \/    \/     \/     |__| 
{COLOR_ROJO}By P4IM0N{COLOR_RESET}'''
print(banner)

#----------------------------------------------------------------------------------------------
def consultas():
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    paginaWEB_para_scraping = input('Manito dame el sitio web para realizar el scraping: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    primera_etiqueta_inicio = input('Manito ahora dime la etiqueta principal de inicio que quieres buscar solo el nombre si (<,>): ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    argumento = input('Manito ahora dame el argumento de la etiqueta principal que me diste antes: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    return paginaWEB_para_scraping, primera_etiqueta_inicio, argumento
#----------------------------------------------------------------------------------------------
lista_informacion = []
lista_links = []

def main(paginaWEB_para_scraping, primera_etiqueta_inicio, argumento ):
    try:
        if paginaWEB_para_scraping:
            user_agent_navegador = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41'}
            objetivo = requests.get(url=paginaWEB_para_scraping, headers=user_agent_navegador)
            
            if objetivo.status_code == 200:
                informacion_html = BeautifulSoup(objetivo.text, 'html.parser')
                solicitud = informacion_html.find_all(primera_etiqueta_inicio, class_=argumento)
                
                for objetivos in solicitud:
                    lista_informacion.append([objetivos.text])
                    segunda_etiqueta= objetivos.find('a')
                    lista_links.append([segunda_etiqueta.get('href')])
                    tabla_info = tabulate(lista_informacion, ['TEXTO ENCONTRADO'], tablefmt='grid')
                    tabla_link = tabulate(lista_links, ['LINKS ENCONTRADOS'], tablefmt='grid')
                print(COLOR_AZUL+tabla_info+COLOR_RESET)
                print(COLOR_ROJO+tabla_link+COLOR_RESET)
                    
            
    except NameError as error:
        print(f'Manito ocurrio el siguiente erro: {error}')    
        

#----------------------------------------------------------------------------------------------
if __name__=='__main__':
    try:
        respuestas = consultas()
        main(*respuestas)
    except KeyboardInterrupt:
        print('Manito se cerro bien el programa :D')
        exit()    

#----------------------------------------------------------------------------------------------


```

CON MODULO RE:

// Some code

```python
#!programa de raspado web o scrapinmg web usando RE para tal fin - P4IscrapingCre.py - By P4IM0N

#----------------------------------------------------------------------------------------------
from tabulate import tabulate
import urllib.request
import re

#----------------------------------------------------------------------------------------------
COLOR_ROJO = "\033[91m"
COLOR_AZUL = '\033[94m'
COLOR_RESET = "\033[0m"

#----------------------------------------------------------------------------------------------
banner = f'''

__________  _____ .___                                  .__               _________                 
\______   \/  |  ||   | ______ ________________  ______ |__| ____    ____ \_   ___ \_______   ____  
 |     ___/   |  ||   |/  ___// ___\_  __ \__  \ \____ \|  |/    \  / ___\/    \  \/\_  __ \_/ __ \ 
 |    |  /    ^   /   |\___ |\  \___|  | \// __ \|  |_> >  |   |  \/ /_/  >     \____|  | \/\  ___/ 
 |____|  \____   ||___/____  >\___  >__|  (____  /   __/|__|___|  /\___  / \______  /|__|    \___  >
              |__|         \/     \/           \/|__|           \//_____/         \/             \/ 
{COLOR_ROJO}By P4IM0N{COLOR_RESET}'''
print(banner)

#----------------------------------------------------------------------------------------------
def consultas():
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    paginaWEB_para_scraping = input('Manito dame el sitio web para realizar el scraping: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    primera_etiqueta_inicio = input('Manito ahora dime la etiqueta principal de inicio que quieres buscar: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    primera_etiqueta_final = input('Manito ahora dame la etiqueta de cierre de la etiquet principal que me diste antes: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    return paginaWEB_para_scraping, primera_etiqueta_inicio, primera_etiqueta_final
#----------------------------------------------------------------------------------------------
lista_informacion = []

def main(paginaWEB_para_scraping, primera_etiqueta_inicio, primera_etiqueta_final ):
    try:
        if paginaWEB_para_scraping:
            pagina = open('paginarraspada.html', 'w+')
            codigoHTML = urllib.request.urlopen(paginaWEB_para_scraping)
            codigoHTML = codigoHTML.read().decode('utf-8')
            pagina.write(codigoHTML)
            pagina.close()
            
            paginaHTML = open('paginarraspada.html', 'r')
            
            tabla = None
            for linea in paginaHTML.readlines():
                if primera_etiqueta_inicio and primera_etiqueta_final:
                    
                    linea_limpia = re.findall(f'^{primera_etiqueta_inicio}', linea)
                    if linea_limpia:
                        print(f'{COLOR_ROJO}********************************************************************************{COLOR_RESET}')
                        print(linea_limpia)
                    
                    linea_limpia = re.findall(f'{primera_etiqueta_final}$', linea)
                    if linea_limpia:
                        print(f'{COLOR_AZUL}···············································································{COLOR_RESET}')
                        print(linea_limpia)
                    
                    linea_limpia =  re.findall(f'{primera_etiqueta_inicio}(.+?){primera_etiqueta_final}', linea)
                    for linea_re in linea_limpia:
                        print(f'{COLOR_ROJO}////////////////////////////////////////////////////////////////////////////////{COLOR_RESET}')
                        print(linea_re)
                        
                    linea_limpia1 = re.findall(f'{primera_etiqueta_inicio}.*{primera_etiqueta_final}', linea)          
                    if linea_limpia1:
                        linea_limpia = linea.replace(primera_etiqueta_inicio, '')
                        linea_limpia = linea_limpia.replace(primera_etiqueta_final, '')
                        lista_informacion.append([linea_limpia])
                        tabla = tabulate(lista_informacion, ['TEXTO ENCONTRADO'], tablefmt='grid')
                
                else:
                    print('-----------------------------------------------------------------------------------')
                    print('Manito debes darme si o si las etiquetas de inicio y de final para porder trabajar ')
                    respuestas = consultas()
                    main(*respuestas)
            
            print(COLOR_AZUL+tabla+COLOR_RESET)                
    except NameError as error:
        print(f'Manito ocurrio el siguiente erro: {error}')    
        

#----------------------------------------------------------------------------------------------
if __name__=='__main__':
    try:
        respuestas = consultas()
        main(*respuestas)
    except KeyboardInterrupt:
        print('Manito se cerro bien el programa :D')
        exit()    

#----------------------------------------------------------------------------------------------

```

SIN USO DE MODULOS:

// Some code

```python
#!programa de raspado web o scrapinmg web sin uso de librerias par tal fin - P4IscrapingSmod.py - By P4IM0N

#----------------------------------------------------------------------------------------------
from tabulate import tabulate
import urllib.request

#----------------------------------------------------------------------------------------------
COLOR_ROJO = "\033[91m"
COLOR_AZUL = '\033[94m'
COLOR_RESET = "\033[0m"

#----------------------------------------------------------------------------------------------
banner = f'''

__________  _____ .___                                  .__                _________                  .___
\______   \/  |  ||   | ______ ________________  ______ |__| ____    ____ /   _____/ _____   ____   __| _/
 |     ___/   |  ||   |/  ___// ___\_  __ \__  \ \____ \|  |/    \  / ___|\_____  \ /     \ /  _ \ / __ | 
 |    |  /    ^   /   |\___ |\  \___|  | \// __ \|  |_> >  |   |  \/ /_/  >        \  Y Y  (  <_> ) /_/ | 
 |____|  \____   ||___/____  >\___  >__|  (____  /   __/|__|___|  /\___  /_______  /__|_|  /\____/\____ | 
              |__|         \/     \/           \/|__|           \//_____/        \/      \/            \/ 
{COLOR_ROJO}By P4IM0N{COLOR_RESET}'''
print(banner)

#----------------------------------------------------------------------------------------------
def consultas():
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    paginaWEB_para_scraping = input('Manito dame el sitio web para realizar el scraping: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    primera_etiqueta_inicio = input('Manito ahora dime la etiqueta principal de inicio que quieres buscar: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    primera_etiqueta_final = input('Manito ahora dame la etiqueta de cierre de la etiquet principal que me diste antes: ')
    print(f'{COLOR_ROJO}-----------------------------------------------------------------------------------{COLOR_RESET}')
    return paginaWEB_para_scraping, primera_etiqueta_inicio, primera_etiqueta_final
#----------------------------------------------------------------------------------------------
lista_informacion = []

def main(paginaWEB_para_scraping, primera_etiqueta_inicio, primera_etiqueta_final ):
    try:
        if paginaWEB_para_scraping:
            pagina = open('paginarraspada.html', 'w+')
            codigoHTML = urllib.request.urlopen(paginaWEB_para_scraping)
            codigoHTML = codigoHTML.read().decode('utf-8')
            pagina.write(codigoHTML)
            pagina.close()
            
            paginaHTML = open('paginarraspada.html', 'r')
            
            for linea in paginaHTML.readlines():
                if primera_etiqueta_inicio and primera_etiqueta_final:
                    if primera_etiqueta_inicio in linea:
                        linea_limpia = linea.replace(primera_etiqueta_inicio, '')
                        linea_limpia = linea_limpia.replace(primera_etiqueta_final, '')
                        lista_informacion.append([linea_limpia])
                        tabla = tabulate(lista_informacion, ['TEXTO ENCONTRADO'], tablefmt='grid')
                
                else:
                    print(f'{COLOR_AZUL}-----------------------------------------------------------------------------------{COLOR_RESET}')
                    print('Manito debes darme si o si las etiquetas de inicio y de final para porder trabajar ')
                    respuestas = consultas()
                    main(*respuestas)
            tabla = tabulate(lista_informacion, ['TEXTO ENCONTRADO'], tablefmt='grid')
            print(COLOR_AZUL+tabla+COLOR_RESET)                
    except NameError as error:
        print(f'Manito ocurrio el siguiente erro: {error}')    
        

#----------------------------------------------------------------------------------------------
if __name__=='__main__':
    try:
        respuestas = consultas()
        main(*respuestas)
    except KeyboardInterrupt:
        print('Manito se cerro bien el programa :D')
        exit()    

#----------------------------------------------------------------------------------------------


```

Last updated