Inglês | 中文版
Este projeto fornece uma poderosa ferramenta de raspagem na web que busca resultados de pesquisa e os converte em formato de marcação usando FASTAPI, SEARXNG e Browser. Inclui a capacidade de usar proxies para raspar e lidar com a conversão de conteúdo HTML para o Markdown com eficiência. Agora, com a integração da IA para filtrar os resultados da pesquisa. As alternativas incluem Jina.ai, Firecrawl AI, EXA AI e 2Markdown, oferecendo várias soluções para desenvolvedores de mecanismos de raspagem e pesquisa da Web.
Certifique -se de ter o seguinte instalado:
Você pode usar o Docker para simplificar o processo de configuração. Siga estas etapas:
Clone o repositório :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownRun Docker Compose :
docker compose up --build Com essa configuração, se você alterar o arquivo .env ou main.py , não precisará mais reiniciar o Docker. As alterações serão recarregadas automaticamente.
Siga estas etapas para configuração manual:
Clone o repositório :
git clone https://github.com/essamamdani/search-result-scraper-markdown.git
cd search-result-scraper-markdownCriar e ativar o ambiente virtual :
virtualenv venv
source venv/bin/activateInstale dependências :
pip install -r requirements.txtCrie um arquivo .env no diretório raiz com o seguinte conteúdo:
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-0125Execute os contêineres do Docker para Searxng e Browserless :
./run-services.shInicie o aplicativo FASTAPI :
uvicorn main:app --host 0.0.0.0 --port 8000 Para executar uma consulta de pesquisa, envie uma solicitação GET para o ponto de extremidade root / com os parâmetros de consulta q (consulta de pesquisa), num_results (número de resultados) e format (obtenha a resposta no JSON ou por padrão no Markdown).
Exemplo:
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 buscar e converter o conteúdo de um URL específico para o Markdown, envie uma solicitação GET para o ponto final /r/{url:path} .
Exemplo:
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 buscar os resultados da pesquisa de imagem, envie uma solicitação GET para o terminal /images com os parâmetros de consulta q (consulta de pesquisa) e num_results (número de resultados).
Exemplo:
curl " http://localhost:8000/images?q=puppies&num_results=5 " Para buscar os resultados da pesquisa em vídeo, envie uma solicitação de get para o /videos termine com os parâmetros de consulta q (consulta de pesquisa) e num_results (número de resultados).
Exemplo:
curl " http://localhost:8000/videos?q=cooking+recipes&num_results=5 " Este projeto usa proxies Geonode para raspagem na web. Você pode usar meu link de afiliado do Geonode para começar seus serviços de procuração.
Para uma explicação detalhada do código, visite o artigo aqui.
Este projeto está licenciado sob a licença do MIT. Consulte o arquivo de licença para obter detalhes.
Essa mamdani - essamamdani.com
As contribuições são bem -vindas! Sinta -se à vontade para enviar uma solicitação de tração.