Inglés | 中文版
Este proyecto proporciona una poderosa herramienta de raspado web que obtiene resultados de búsqueda y los convierte en formato de Markdown utilizando Fastapi, SearXng y Browserless. Incluye la capacidad de usar proxies para desguace web y maneja la conversión de contenido HTML a Markdown de manera eficiente. Ahora con integración de IA para filtrar los resultados de búsqueda. Las alternativas incluyen Jina.ai, Firecrawl AI, Exa AI y 2Markdown, ofreciendo varias soluciones de raspado web y motores de búsqueda para desarrolladores.
Asegúrese de tener lo siguiente instalado:
Puede usar Docker para simplificar el proceso de configuración. Sigue estos pasos:
Clon el repositorio :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownRun Docker Compose :
docker compose up --build Con esta configuración, si cambia el archivo .env o main.py , ya no necesita reiniciar Docker. Los cambios se recargarán automáticamente.
Siga estos pasos para la configuración manual:
Clon el repositorio :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownCrear y activar entorno virtual :
virtualenv venv
source venv/bin/activateInstalar dependencias :
pip install -r requirements.txtCree un archivo .env en el directorio raíz con el siguiente contenido:
SEARXNG_URL=http://searxng:8080
BROWSERLESS_URL=http://browserless:3000
TOKEN=your_browserless_token_here # Replace with your actual token
# PROXY_PROTOCOL=http
# PROXY_URL=your_proxy_url
# PROXY_USERNAME=your_proxy_username
# PROXY_PASSWORD=your_proxy_password
# PROXY_PORT=your_proxy_port
REQUEST_TIMEOUT=30
# AI Integration for search result filter
FILTER_SEARCH_RESULT_BY_AI=true
AI_ENGINE=groq
# GROQ
GROQ_API_KEY=yours_groq_api_key_here
GROQ_MODEL=llama3-8b-8192
# OPENAI
# OPENAI_API_KEY=your_openai_api_key_here
# OPENAI_MODEL=gpt-3.5-turbo-0125Ejecute contenedores Docker para Searxng y sin navegador :
./run-services.shInicie la aplicación FastAPI :
uvicorn main:app --host 0.0.0.0 --port 8000 Para realizar una consulta de búsqueda, envíe una solicitud GET al punto final raíz / con los parámetros de consulta q (consulta de búsqueda), num_results (número de resultados) y format (obtener respuesta en JSON o por defecto en Markdown).
Ejemplo:
curl " http://localhost:8000/?q=python&num_results=5&format=json " # for JSON format
curl " http://localhost:8000/?q=python&num_results=5 " # by default Markdown Para obtener y convertir el contenido de una URL específica a Markdown, envíe una solicitud GET al punto final /r/{url:path} .
Ejemplo:
curl " http://localhost:8000/r/https://example.com&format=json " # for JSON format
curl " http://localhost:8000/r/https://example.com " # by default Markdown Para obtener resultados de búsqueda de imágenes, envíe una solicitud GET al punto final /images con los parámetros de consulta q (consulta de búsqueda) y num_results (número de resultados).
Ejemplo:
curl " http://localhost:8000/images?q=puppies&num_results=5 " Para obtener resultados de búsqueda de video, envíe una solicitud GET al punto final /videos con los parámetros de consulta q (consulta de búsqueda) y num_results (número de resultados).
Ejemplo:
curl " http://localhost:8000/videos?q=cooking+recipes&num_results=5 " Este proyecto utiliza proxies Geonode para el raspado web. Puede usar mi enlace de afiliado de Geonode para comenzar con sus servicios proxy.
Para una explicación detallada del código, visite el artículo aquí.
Este proyecto tiene licencia bajo la licencia MIT. Consulte el archivo de licencia para obtener más detalles.
Essa Mamdani - Essamamdani.com
¡Las contribuciones son bienvenidas! No dude en enviar una solicitud de extracción.