O WaterCrawl é um poderoso rastreador da Web de código aberto projetado para ajudar os usuários a extrair dados de páginas da Web e transformá-los em um formato de dados adequado para o processamento de modelagem de linguagem grande (LLM). Ele se baseia no desenvolvimento em Python, combinado com as tecnologias Django, Scrapy e Celery, e oferece suporte ao rastreamento eficiente da Web e ao processamento de dados. O WaterCrawl oferece SDK de várias linguagens, inclusive Node.js, Go e PHP, facilitando a integração dos desenvolvedores em diferentes projetos. O WaterCrawl pode ser implantado rapidamente via Docker ou personalizado usando as APIs fornecidas. Ele foi projetado para simplificar o processo de extração de dados da Web para desenvolvedores e empresas que lidam com grandes quantidades de conteúdo da Web.
Lista de funções
- Rastreamento eficiente da Web: suporte à profundidade de rastreamento personalizada, velocidade e conteúdo de destino para obter rapidamente dados da Web.
- Extração e limpeza de dados: filtre automaticamente tags irrelevantes (por exemplo, scripts, estilos), extraia o conteúdo principal e ofereça suporte a vários formatos de saída (por exemplo, JSON, Markdown).
- Suporte a SDK multilíngue: SDKs para Node.js, Go, PHP e Python são fornecidos para atender a diferentes necessidades de desenvolvimento.
- Monitoramento de progresso em tempo real: fornece atualizações de status em tempo real das tarefas de rastreamento via Celery.
- Suporte à implantação do Docker: crie rapidamente ambientes locais ou de produção com o Docker Compose.
- Integração MinIO: suporta armazenamento e download de arquivos, adequado para lidar com dados em grande escala.
- Extensões de plug-in: fornecem uma estrutura de plug-in que permite que os desenvolvedores personalizem a lógica de rastreamento e processamento.
- Integração de API: suporta o gerenciamento de tarefas de rastreamento, a obtenção de resultados ou o download de dados via API.
Usando a Ajuda
A instalação e o uso do WaterCrawl destinam-se a desenvolvedores e equipes técnicas, e são adequados para usuários familiarizados com Python e Docker. Aqui está o processo detalhado de instalação e uso.
Processo de instalação
- armazém de clones
Primeiro, clone o repositório GitHub do WaterCrawl localmente:git clone https://github.com/watercrawl/watercrawl.git cd watercrawl
Isso fará o download do código-fonte do WaterCrawl em seu ambiente local.
- Instalando o Docker
Certifique-se de que o Docker e o Docker Compose estejam instalados em seu sistema. Site oficial do Docker Faça o download e instale. - Configuração de variáveis de ambiente
entrar emdocker
copie o arquivo de configuração de ambiente de amostra:cd docker cp .env.example .env
compilador
.env
configure os parâmetros necessários, como a conexão do banco de dados, o endereço de armazenamento do MinIO etc. Se for implantado em um ambiente não local, como um servidor em nuvem, a configuração do MinIO deverá ser atualizada:MINIO_EXTERNAL_ENDPOINT=your-domain.com MINIO_BROWSER_REDIRECT_URL=http://your-domain.com/minio-console/ MINIO_SERVER_URL=http://your-domain.com/
Essas configurações garantem que as funções de upload e download de arquivos funcionem corretamente. Mais detalhes de configuração podem ser encontrados em
DEPLOYMENT.md
Documentação. - Iniciando o contêiner do Docker
Inicie o serviço usando o Docker Compose:docker compose up -d
Isso iniciará os serviços principais do WaterCrawl, incluindo o back-end do Django, o rastreador Scrapy e o armazenamento MinIO.
- Acesso a aplicativos
Abra seu navegador e acessehttp://localhost
Verifique se o serviço está sendo executado corretamente. Se implantado em um servidor remoto, substitualocalhost
é seu nome de domínio ou endereço IP.
Função Fluxo de operação
A função principal do WaterCrawl é o rastreamento da Web e a extração de dados; a seguir estão as etapas detalhadas das funções principais.
rastreador da web
O WaterCrawl usa a estrutura Scrapy para rastreamento da Web, e os usuários podem iniciar tarefas de rastreamento por meio da API ou da linha de comando. Por exemplo, para iniciar uma tarefa de rastreamento:
{
"url": "https://example.com",
"pageOptions": {
"exclude_tags": ["script", "style"],
"include_tags": ["p", "h1", "h2"],
"wait_time": 1000,
"only_main_content": true,
"include_links": true,
"timeout": 15000
},
"sync": true,
"download": true
}
- Descrição do parâmetro::
exclude_tags
Filtragem de tags HTML especificadas (como scripts e estilos).include_tags
Extrai apenas o conteúdo da tag especificada.only_main_content
Extrair apenas o conteúdo principal da página, ignorando barras laterais, anúncios, etc.include_links
Se contém ou não links na página.timeout
Tempo limite de rastreamento: defina o tempo limite de rastreamento em milissegundos.
- procedimento::
- Envie as solicitações JSON acima usando um SDK (como Python ou Node.js) ou diretamente por meio de uma API.
- O WaterCrawl retorna os resultados do rastreamento com texto extraído, links ou outros dados especificados.
- Os resultados podem ser salvos em JSON, Markdown ou outros formatos.
Download de dados
O WaterCrawl permite salvar os resultados do rastreamento em um arquivo. Por exemplo, para baixar um mapa do site:
{
"crawlRequestId": "uuid-of-crawl-request",
"format": "json"
}
- procedimento::
- Obtenha a ID da tarefa de rastreamento (visualizada por meio da API ou da lista de tarefas).
- Use a API para enviar uma solicitação de download, especificando o formato de saída (por exemplo, JSON, Markdown).
- Os arquivos baixados são armazenados no MinIO e estão disponíveis visitando o console do MinIO.
monitoramento em tempo real
O WaterCrawl usa o Celery para fornecer monitoramento do status da tarefa. Os usuários podem consultar o andamento de uma tarefa por meio da API:
curl https://app.watercrawl.dev/api/tasks/<task_id>
O status da tarefa retornado inclui "em andamento", "concluído" ou "falhou", para ajudar os usuários a entender o progresso do rastreamento em tempo real.
Desenvolvimento de plug-ins
O WaterCrawl oferece suporte a extensões de plugin que permitem que os desenvolvedores criem funcionalidades personalizadas com base na estrutura de plugin Python fornecida:
- montagem
watercrawl-plugin
Pacote:pip install watercrawl-plugin
- Desenvolva plug-ins usando as classes abstratas e as interfaces fornecidas para definir a lógica de rastreamento ou os fluxos de processamento de dados.
- Integre o plug-in ao aplicativo principal do WaterCrawl para executar tarefas personalizadas.
advertência
- Se for implantado em um ambiente de produção, certifique-se de atualizar o
.env
no arquivo, caso contrário, os uploads ou downloads de arquivos poderão falhar. - Evite discussões abertas sobre segurança no GitHub, envie perguntas para
support@watercrawl.dev
. - Recomenda-se verificar regularmente o repositório GitHub do WaterCrawl para obter as atualizações e correções mais recentes.
cenário do aplicativo
- Preparação de dados de modelos grandes
O WaterCrawl pode rastrear rapidamente o conteúdo de texto de sites de destino, limpar dados estranhos e gerar arquivos JSON ou Markdown estruturados que são adequados para uso direto no treinamento de modelos. - Pesquisa de mercado
As empresas precisam analisar o conteúdo do site da concorrência ou a dinâmica do setor. O WaterCrawl pode rastrear em lote as páginas da Web de destino e extrair informações importantes (por exemplo, descrições de produtos, preços, notícias) para ajudar as empresas a agregar rapidamente dados de mercado. - agregação de conteúdo
O WaterCrawl suporta regras de rastreamento personalizadas para extrair automaticamente títulos de artigos, corpo do texto e links para gerar uma biblioteca de conteúdo com formatação uniforme. - Otimização de SEO
Os especialistas em SEO podem usar o WaterCrawl para rastrear sitemaps e links de páginas, analisar a estrutura do site e a distribuição de conteúdo e otimizar as classificações dos mecanismos de pesquisa.
QA
- Quais SDKs de linguagem de programação são compatíveis com o WaterCrawl?
O WaterCrawl fornece SDKs para Node.js, Go, PHP e Python, abrangendo uma ampla gama de cenários de desenvolvimento. Cada SDK oferece suporte à funcionalidade completa da API para facilitar a integração. - Como faço para lidar com uma tarefa de rastreamento com falha?
Verifique o status da tarefa para garantir que ela não falhou devido a um tempo limite ou a um problema de rede. Ajustestimeout
ou verificar o mecanismo anti rastreamento do site de destino. Se necessário, entre em contato com osupport@watercrawl.dev
. - Há suporte para usuários não técnicos?
O WaterCrawl é voltado principalmente para desenvolvedores e requer um conhecimento básico de Python ou Docker. Os usuários não técnicos podem precisar da assistência de uma equipe técnica para implantá-lo e usá-lo. - Como posso ampliar a funcionalidade do WaterCrawl?
fazer uso dewatercrawl-plugin
O pacote desenvolve plug-ins personalizados que definem uma lógica específica de rastreamento ou processamento de dados que é integrada para execução no aplicativo principal.