ReflexDocScraper es una herramienta automatizada para extraer y estructurar la documentación de Reflex. Utiliza web scraping multihilo para extraer el contenido de la documentación técnica disponible en el sitio, limpiarlo y guardarlo en archivos Markdown bien formateados. Al finalizar, la documentación completa es comprimida en un archivo ZIP.
- Scraping multihilo: Extrae la documentación de Reflex de manera paralela, mejorando el rendimiento y reduciendo el tiempo de ejecución.
- Almacenamiento en Markdown: Toda la documentación extraída se guarda en archivos Markdown con una estructura clara y ejemplos de código bien formateados.
- Comprimido en ZIP: Al finalizar el scraping, toda la documentación es comprimida en un archivo ZIP para facilitar su almacenamiento o distribución.
Para ejecutar ReflexDocScraper, necesitas tener instaladas las siguientes bibliotecas de Python:
- httpx - Cliente HTTP asíncrono y moderno.
- selectolax - Parser HTML ultra rápido basado en
lexbor
. - shutil - Biblioteca estándar para operaciones de archivos (ya viene con Python).
Puedes instalarlas con el siguiente comando:
pip install httpx selectolax
-
Clona este repositorio en tu máquina local:
git clone https://github.com/tu_usuario/ReflexDocScraper.git
-
Instala las dependencias necesarias:
pip install -r requirements.txt
-
Ejecuta el script principal para comenzar el scraping:
python reflex_doc_scraper.py
Este proyecto scrapeará toda la documentación disponible en Reflex bajo la ruta /docs/
y la guardará en archivos Markdown.
-
Ejecuta el siguiente comando para comenzar el scraping:
python reflex_doc_scraper.py
-
Al finalizar, se creará una carpeta llamada
docs/
que contendrá todos los archivos Markdown generados. -
Además, se comprimirá la carpeta
docs
en un archivo ZIP llamadoreflex_docs.zip
que contendrá toda la documentación en un formato portátil.
Cada archivo Markdown tendrá la siguiente estructura:
# Título de la Página
**URL**: https://reflex.dev/docs/algun-enlace/
Descripción extraída de la documentación.
## Examples
```python
# Ejemplo de código extraído de la documentación
def example():
pass
## Ejemplo de salida
Al ejecutar el script, generará archivos Markdown organizados en la carpeta `docs/` y un archivo comprimido `reflex_docs.zip`.
docs/ getting_started.md installation.md components.md axis.md ... reflex_docs.zip
## Personalización
### Número de hilos
Por defecto, el scraping se realiza utilizando 10 hilos para acelerar el proceso. Puedes ajustar este número en el archivo `reflex_doc_scraper.py` cambiando el valor de `max_workers` en la siguiente línea:
```python
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
El scraper extrae automáticamente las URLs desde el sitemap de Reflex (https://reflex.dev/sitemap-0.xml
), filtrando aquellas que pertenecen a /docs/
. Si quieres añadir más URLs o modificar el comportamiento, puedes cambiar la lógica dentro de la función get_docs_urls()
.
¡Las contribuciones son bienvenidas! Si encuentras algún problema o tienes alguna sugerencia para mejorar el proyecto, no dudes en crear un issue o enviar un pull request.
Este proyecto está licenciado bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.