๐Ÿ‘นINFORMACION WEB CON WHOIS P4InfoWebWhois.py

// Some code

```python
#!programa para conseguir informacion de  un dominio usando el servicio de who.is - P4InfoWebWhois.py - By P4IM0N

#!/usr/bin/env python
#_*_coding: utf8_*_


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

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

__________  _____ .___        _____      __      __      ___.   __      __.__           .__         
\______   \/  |  ||   | _____/ ____\____/  \    /  \ ____\_ |__/  \    /  \  |__   ____ |__| ______ 
 |     ___/   |  ||   |/    \   __\/  _ \   \/\/   // __ \| __ \   \/\/   /  |  \ /  _ \|  |/  ___/ 
 |    |  /    ^   /   |   |  \  | (  <_> )        /\  ___/| \_\ \        /|   Y  (  <_> )  |\___ \  
 |____|  \____   ||___|___|  /__|  \____/ \__/\  /  \___  >___  /\__/\  / |___|  /\____/|__/____  > 
              |__|         \/                  \/       \/    \/      \/       \/               \/  
By P4IM0N'''
print(banner)

#-----------------------------------------------------------------------------------------
def main():
    dominio_objetivo = input('Manito porfavor dame el Dominio del que quieres que te de informacion con WHOIS: ')    #?obtenemos el dominio objetivo del susuario
    dominio_objetivo = requests.get(f'https://who.is/whois/{dominio_objetivo}')                                      #?al dominiioo lo agregamos al final de la url de la paginawho.is que es donde se realizara la busqueda de info, con request y su metodo get.   
    dominio_objetivo_parseado = BeautifulSoup(dominio_objetivo.text, 'html5lib')                                     #?parseamos el html donde esta la info suministrada por who.is, usando beatifulsoup y le damos formato html5lib
   
    lista_info_WHOIS = []                                                                                            #?creamos una lista donde se guardara cada info en forma de lista en lista, para mostrarla en un atabla luego   
    barra_de_progreso = tqdm(total=len(dominio_objetivo_parseado.find_all("div", class_="queryResponseBodyRow")))    #?creamos un objeto de barra de progreso, con el rango deacuerdo a la cantidad de etiquetas div con class "queryResponseBodyRow" encontradas con .find_all
    for info in dominio_objetivo_parseado.find_all("div", class_="queryResponseBodyRow"):                            #?iteramos por cada una de las class "queryResponseBodyRow"
        for llave in info.find_all("div", class_="queryResponseBodyKey"):                                            #?y dentro de ellaas iteramos con find_all por cada  "div", class_="queryResponseBodyKey" encontrada 
            llave = llave.text                                                                                       #?y la guarmos las llaves en una variabl con .text   
            
            for infollave in info.find_all("div", class_="queryResponseBodyValue"):                                  #?luego iteramos por todas las  "div", class_="queryResponseBodyValue"  con un loop terciario digamos 
                infollave = infollave.text                                                                           #?y la guarmos las informaciones e las llaves en una variabl con .text   
                
        cada_infor = f'{llave} = {infollave}'                                                                        #?luego de este loop de key guardamos una cadena de string formateadas con el estilo en que mostraremos nuestra informacion   
        lista_info_WHOIS.append([cada_infor])                                                                        #?y esta variable la guardamos en forma de lista dentro de nuestra lista_info:_whois con .append
        
        for resto_titulos in dominio_objetivo_parseado.find_all("span", class_="lead", text="Registrar Data"):       #?luego buscamos el resto de informacion que se dejo de encontrar dado que ya no existian classes "queryResponseBodyKey", por lo que vuelvo a iterar sobre el dominio principal ya parseado en busqueda nuevamente con find_all del contenido de etiquetas "span", class_="lead", text="Registrar Data" 
            titulo_resto_info = resto_titulos.text                                                                   #?las cuales al obtenerlas las guardo en variablรฑe por cada iteracion con el metodo.text   
            
            for resto_info in info.find_all("div", class_="queryResponseBodyValue"):                                 #?luego segida de esa informacion busco la informacion de estas span, las cuales se guardan, buscando con find_all en etiquetas "div", class_="queryResponseBodyValue" con un loop terciario digamos
                resto_info = resto_info.text                                                                         #?igual que anteriormemnte las guardo en variable con .text
                
        cada_resto_info = f'{titulo_resto_info} = {resto_info}'                                                      #?y nuevamente al final de este segundo loop secundario guardo con el formato y estilo que quiero la informacion
        lista_info_WHOIS.append([cada_resto_info])                                                                   #?al igual que anteriormente la guardamos toda con .append
        barra_de_progreso.update(1)                                                                                  #?actualizamos la barra de progreso en uno con cada iteracion
    barra_de_progreso.close()                                                                                        #?cerramos la barra de progreso
        
       
    tabla_info_whois = tabulate(lista_info_WHOIS,['INFORMACION WHOIS'], tablefmt='grid')                             #?terminando al final del loop principal creamos la tabla con sus parametros, de informacion con la lista info WHOIS, el encabezado y formato de tabla grid
    print(tabla_info_whois)    

#-----------------------------------------------------------------------------------------
if __name__=='__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('Manito se esta cerrando el programita')
        exit()

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

```

Last updated