pip_busqueda/pip_busca
2025-08-28 17:19:28 +02:00

48 lines
1.2 KiB
Python

#!/usr/bin/env python3
'''
Author: LuisGuLo
Release: v1.6
ChangeLog:
v1.6: Peticion simple y extraccion
v1.5: browsers de consola y dumps
v1.4: Uso de requests-html
v1.3: Modulos y venv
v1.2: Peticion con user-agent
v1.1: Peticion web mediante query
v1.0: PoC inicial bash. Cambio a python.
'''
import sys
import requests
from bs4 import BeautifulSoup
def mostrar_ayuda():
print("Uso: ./pip_busca <cadena_busqueda>")
print("\nBusca paquetes en PyPI cuyo nombre contenga la cadena indicada.")
print("Ejemplo: ./pip_busca ansi")
if len(sys.argv) < 2 or sys.argv[1] in ["--help", "-h"]:
mostrar_ayuda()
sys.exit(0)
busqueda = sys.argv[1].lower()
url = "https://pypi.org/simple/"
try:
response = requests.get(url)
response.raise_for_status()
except requests.RequestException as e:
print(f"❌ Error al conectar con PyPI: {e}")
sys.exit(1)
soup = BeautifulSoup(response.text, "html.parser")
paquetes = [a.text for a in soup.find_all("a")]
coincidentes = [p for p in paquetes if busqueda in p.lower()]
print(f"\n🔍 Paquetes que contienen '{busqueda}':\n")
if not coincidentes:
print("❌ No se encontraron coincidencias.")
else:
for nombre in coincidentes:
print(f"📦 {nombre}")