HardwareXtractor - Extraccion de specs de hardware con trazabilidad
Project description
HardwareXtractor
Completa fichas técnicas de hardware en minutos. Introduce el modelo de cada componente y obtén especificaciones verificadas con trazabilidad completa.
Características
- Extracción automatizada de specs desde fuentes oficiales y de referencia
- Trazabilidad completa: cada valor incluye origen, URL y nivel de confianza
- Sistema de fallback: si una fuente falla, intenta automáticamente la siguiente
- Detección anti-bot: identifica protecciones Cloudflare/CAPTCHA y usa Playwright como fallback
- Múltiples interfaces: GUI (Tkinter) y CLI interactivo
- Exportación flexible: CSV, XLSX (con colores por tier) y Markdown
Instalación
macOS (Homebrew)
En macOS moderno, Python está protegido contra instalaciones globales. Usa pipx (recomendado):
# Instalar pipx si no lo tienes
brew install pipx
# Instalar hardwarextractor
pipx install hardwarextractor
# Actualizar a nueva versión
pipx upgrade hardwarextractor
Linux
Opción 1: pipx (recomendado)
# Instalar pipx
sudo apt install pipx # Debian/Ubuntu
# o
sudo dnf install pipx # Fedora
# Instalar hardwarextractor
pipx install hardwarextractor
Opción 2: pip directo
pip install hardwarextractor
Opción 3: Entorno virtual
python3 -m venv ~/.venvs/hxtractor
source ~/.venvs/hxtractor/bin/activate
pip install hardwarextractor
Windows
Opción 1: pip (recomendado)
pip install hardwarextractor
Opción 2: Entorno virtual
python -m venv %USERPROFILE%\venvs\hxtractor
%USERPROFILE%\venvs\hxtractor\Scripts\activate
pip install hardwarextractor
Dependencias opcionales
# Para sitios con protección anti-bot (Playwright)
pipx inject hardwarextractor playwright # o pip install hardwarextractor[browser]
# Para exportación a Excel
pipx inject hardwarextractor openpyxl # o pip install hardwarextractor[excel]
# Instalación completa (pip)
pip install hardwarextractor[full]
Desde código fuente
git clone https://github.com/NAZCAMEDIA/hardwarextractor.git
cd hardwarextractor
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# o .venv\Scripts\activate en Windows
pip install -e ".[full]"
Actualización
# Con pipx
pipx upgrade hardwarextractor
# Con pip
pip install --upgrade hardwarextractor
# Forzar reinstalación
pipx uninstall hardwarextractor && pipx install hardwarextractor
Uso
CLI (línea de comandos)
hxtractor
Muestra el menú interactivo:
██╗ ██╗██╗ ██╗████████╗██████╗ █████╗ ██████╗████████╗ ██████╗ ██████╗
██║ ██║╚██╗██╔╝╚══██╔══╝██╔══██╗██╔══██╗██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗
███████║ ╚███╔╝ ██║ ██████╔╝███████║██║ ██║ ██║ ██║██████╔╝
██╔══██║ ██╔██╗ ██║ ██╔══██╗██╔══██║██║ ██║ ██║ ██║██╔══██╗
██║ ██║██╔╝ ██╗ ██║ ██║ ██║██║ ██║╚██████╗ ██║ ╚██████╔╝██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
v0.2.0 - Hardware Specs Extractor
© 2026 NAZCAMEDIA
┌─────────────────────────────────────────────────────────┐
│ VERSIÓN BETA - Tu feedback es importante │
│ Reporta problemas: Menú > Enviar feedback │
└─────────────────────────────────────────────────────────┘
1) Analizar componente
2) Exportar ficha
3) Reset ficha
4) Enviar feedback
5) Salir
GUI (interfaz gráfica)
hxtractor-gui
Características del CLI
- Spinner animado con tiempo transcurrido durante el análisis
- Mensajes de estado descriptivos: "Normalizando...", "Clasificando...", "Extrayendo..."
- Información completa de cada componente con fuentes y URLs
- Fuentes de consulta manual para verificar datos
- Leyenda de colores para identificar el origen de cada dato
- Auto-agregado a la ficha técnica
Flujo básico
- Introduce un componente (ej.
CMK32GX5M2B6000C36ointel i7) - El spinner muestra el progreso con tiempo transcurrido
- El sistema clasifica el tipo (RAM, CPU, GPU, etc.)
- Busca en fuentes oficiales primero, luego referencias
- Muestra especificaciones con indicador de tier y fuente
- Muestra fuentes de consulta manual para verificar
- Agrega automáticamente a la ficha
- Repite con más componentes
- Exporta a CSV/XLSX/MD
Búsquedas soportadas
- Por modelo específico:
i9-14900K,RTX 4090,CMK32GX5M2B6000C36 - Por familia de procesador:
intel i7,intel i5,ryzen 9,amd ryzen 7 - Por part number:
CMK32GX5M2B5600C36 - Por URL: URL directa a specs del fabricante
Sistema de Tiers
| Tier | Descripción | Indicador |
|---|---|---|
| OFFICIAL | Datos del fabricante | ● verde |
| REFERENCE | Bases de datos técnicas (TechPowerUp, WikiChip) | ◐ naranja |
| CALCULATED | Valores derivados de otros campos | ◇ azul |
| UNKNOWN | Sin fuente verificable | gris |
Componentes soportados
- CPU: Intel, AMD
- RAM: Corsair, Kingston, G.Skill, Crucial, Samsung
- GPU: NVIDIA, AMD, Intel
- Motherboard: ASUS, MSI, Gigabyte, ASRock
- Storage: Samsung, WD, Seagate, Crucial, Kingston
Fuentes de consulta
El CLI y GUI muestran enlaces a fuentes oficiales y de referencia para cada tipo de componente:
| Tipo | Fuentes oficiales | Referencias |
|---|---|---|
| CPU | Intel ARK, AMD | TechPowerUp, WikiChip, CPU-World, PassMark |
| GPU | NVIDIA, AMD, Intel Arc | TechPowerUp, GPU-Specs, PassMark |
| RAM | Corsair, Kingston, G.Skill, Crucial | PassMark, UserBenchmark |
| Motherboard | ASUS, MSI, Gigabyte, ASRock | PCPartPicker |
| Storage | Samsung, WD, Seagate | PassMark, UserBenchmark |
Arquitectura
hardwarextractor/
├── app/ # Orchestrator principal
├── core/ # Eventos y SourceChain
├── cli/ # Interfaz de línea de comandos
├── ui/ # Interfaz gráfica Tkinter
├── scrape/ # Spiders y engines (Requests/Playwright)
├── engine/ # FichaManager, IPC, Commands
├── export/ # Exportadores (CSV, XLSX, MD)
└── models/ # Schemas y tipos
Exportación
CSV
# Desde CLI: opción 2 > csv > ruta
Excel (XLSX)
Incluye:
- Colores por tier (verde=oficial, naranja=referencia)
- Banner de advertencia si hay datos REFERENCE
- Columnas: Sección, Campo, Valor, Unidad, Status, Tier, Fuente, URL
Markdown
Tabla formateada con secciones y leyenda de tiers.
Configuración
Archivo ~/.config/hardwarextractor/config.yaml:
enable_tier2: true # Permitir fuentes REFERENCE
user_agent: "HardwareXtractor/0.2"
retries: 2
throttle_seconds_by_domain:
crucial.com: 1.0
corsair.com: 2.0
Desarrollo
# Clonar repositorio
git clone https://github.com/NAZCAMEDIA/hardwarextractor.git
cd hardwarextractor
# Crear entorno virtual
python3 -m venv .venv
source .venv/bin/activate
# Instalar dependencias de desarrollo
pip install -e ".[dev]"
# Ejecutar tests
pytest
# Tests con cobertura
pytest --cov=hardwarextractor --cov-report=term-missing
Descargas (macOS)
Binarios precompilados disponibles en Releases:
HardwareXtractor.dmg- Imagen de disco para macOSHardwareXtractor.app- Aplicación standalone
Links
- PyPI: https://pypi.org/project/hardwarextractor/
- GitHub: https://github.com/NAZCAMEDIA/hardwarextractor
- Issues: https://github.com/NAZCAMEDIA/hardwarextractor/issues
Licencia
MIT License - Copyright (c) 2026 NAZCAMEDIA
Ver LICENSE para más detalles.
Changelog
v0.2.0 (Beta)
- Sistema de feedback integrado para reportar problemas
- Banner de beta al inicio con recordatorio cada 5 búsquedas
- Pregunta post-búsqueda "¿Funcionó correctamente?"
- Envío automático de reportes a GitHub Issues
- Nueva opción de menú "Enviar feedback" (CLI y GUI)
- Mensaje de agradecimiento tras enviar feedback
- 49 nuevos tests con 82% de cobertura
v0.1.0 (Beta)
- Primera release pública en PyPI
- CLI interactivo con menú y colores ANSI
- GUI con Tkinter
- Panel de fuentes de consulta manual
- Intel ARK Extractor con 29+ specs por CPU
- Búsqueda por familia de procesador (intel i7, ryzen 9, etc.)
- Sistema SourceChain con fallback automático
- Detección de anti-bot (Cloudflare, CAPTCHA)
- Exportación a CSV, XLSX y Markdown
- Soporte para Playwright en sitios protegidos
- macOS App bundle con DMG
- GitHub Actions para publicación automática en PyPI
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hardwarextractor-0.2.1.tar.gz.
File metadata
- Download URL: hardwarextractor-0.2.1.tar.gz
- Upload date:
- Size: 98.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68f4786f63da0fca6a86aa4edef7f9e0eeea9e254da5169db9088708f6ea414e
|
|
| MD5 |
355d595d1babcd93a8c8f593a1bfabfe
|
|
| BLAKE2b-256 |
8841a812e4753972629324053b8d6a5fd3dfcdafae217ee9d8e254c1c60529c7
|
Provenance
The following attestation bundles were made for hardwarextractor-0.2.1.tar.gz:
Publisher:
publish.yml on NAZCAMEDIA/hardwarextractor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hardwarextractor-0.2.1.tar.gz -
Subject digest:
68f4786f63da0fca6a86aa4edef7f9e0eeea9e254da5169db9088708f6ea414e - Sigstore transparency entry: 871972891
- Sigstore integration time:
-
Permalink:
NAZCAMEDIA/hardwarextractor@3a7543832cde8cdcbb924d7ee5552036ad8693c4 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/NAZCAMEDIA
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3a7543832cde8cdcbb924d7ee5552036ad8693c4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hardwarextractor-0.2.1-py3-none-any.whl.
File metadata
- Download URL: hardwarextractor-0.2.1-py3-none-any.whl
- Upload date:
- Size: 115.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce780bff05a9289cf069a2854cca670abdbae1110e455cfbac2aeca06c8b054c
|
|
| MD5 |
a871f67bbe88a1af87492de5aa8626ee
|
|
| BLAKE2b-256 |
27c5c27a3aa17591a1f2063c024dc4fcd3edf06519a0930f39d6989e115955a9
|
Provenance
The following attestation bundles were made for hardwarextractor-0.2.1-py3-none-any.whl:
Publisher:
publish.yml on NAZCAMEDIA/hardwarextractor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hardwarextractor-0.2.1-py3-none-any.whl -
Subject digest:
ce780bff05a9289cf069a2854cca670abdbae1110e455cfbac2aeca06c8b054c - Sigstore transparency entry: 871972893
- Sigstore integration time:
-
Permalink:
NAZCAMEDIA/hardwarextractor@3a7543832cde8cdcbb924d7ee5552036ad8693c4 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/NAZCAMEDIA
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3a7543832cde8cdcbb924d7ee5552036ad8693c4 -
Trigger Event:
release
-
Statement type: