Anglais | 中文版
Ce projet fournit un puissant outil de grattage Web qui récupère les résultats de recherche et les convertit en format Markdown à l'aide de Fastapi, SearXng et sans navigation. Il inclut la capacité d'utiliser des proxys pour le grattage Web et gère efficacement la conversion de contenu HTML en Markdown. Présentant maintenant l'intégration d'IA pour filtrer les résultats de recherche. Les alternatives incluent Jina.ai, Firecrawl AI, EXA AI et 2Markdown, offrant diverses solutions de gratteries et de moteurs de recherche pour les développeurs.
Assurez-vous que vous avez installé les suivants:
Vous pouvez utiliser Docker pour simplifier le processus de configuration. Suivez ces étapes:
Clone le référentiel :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownExécutez Docker Compose :
docker compose up --build Avec cette configuration, si vous modifiez le fichier .env ou main.py , vous n'avez plus besoin de redémarrer Docker. Les modifications seront rechargées automatiquement.
Suivez ces étapes pour la configuration manuelle:
Clone le référentiel :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownCréer et activer l'environnement virtuel :
virtualenv venv
source venv/bin/activateInstallez les dépendances :
pip install -r requirements.txtCréez un fichier .env dans le répertoire racine avec le contenu suivant:
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-0125Exécutez des conteneurs Docker pour searXng et Browserless :
./run-services.shDémarrez l'application Fastapi :
uvicorn main:app --host 0.0.0.0 --port 8000 Pour effectuer une requête de recherche, envoyez une demande GET au point de terminaison racine / avec les paramètres de requête q (Recherche de recherche), num_results (nombre de résultats) et format (obtenez une réponse dans JSON ou par défaut dans Markdown).
Exemple:
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 Pour récupérer et convertir le contenu d'une URL spécifique à Markdown, envoyez une demande GET au point de terminaison /r/{url:path} .
Exemple:
curl " http://localhost:8000/r/https://example.com&format=json " # for JSON format
curl " http://localhost:8000/r/https://example.com " # by default Markdown Pour récupérer les résultats de la recherche d'images, envoyez une demande GET au point de terminaison /images avec les paramètres de requête q (Recherche de recherche) et num_results (nombre de résultats).
Exemple:
curl " http://localhost:8000/images?q=puppies&num_results=5 " Pour récupérer les résultats de la recherche vidéo, envoyez une demande GET au point de terminaison /videos avec les paramètres de requête q (Recherche de recherche) et num_results (nombre de résultats).
Exemple:
curl " http://localhost:8000/videos?q=cooking+recipes&num_results=5 " Ce projet utilise des proxys Geonode pour le grattage Web. Vous pouvez utiliser mon lien d'affiliation Geonode pour démarrer avec leurs services de proxy.
Pour une explication détaillée du code, visitez l'article ici.
Ce projet est autorisé sous la licence du MIT. Voir le fichier de licence pour plus de détails.
ESSA MAMDANI - Essamamdani.com
Les contributions sont les bienvenues! N'hésitez pas à soumettre une demande de traction.