MediaCrawler - Ferramenta de Web Scraping de Mídia Social Multiplataforma
Visão Geral do Projeto
MediaCrawler é uma poderosa ferramenta de web scraping de mídia social multiplataforma, desenvolvida e mantida por NanmiCoder. Este projeto é baseado na tecnologia Playwright e é capaz de coletar informações públicas de várias plataformas de mídia social populares, incluindo conteúdo, comentários e outros dados.
Arquitetura Técnica
Tecnologias Principais
- Playwright: Como um framework de automação de navegador, mantém o ambiente do navegador com o estado de login preservado.
- Python: Linguagem de desenvolvimento principal, versão 3.9.6+.
- Execução de JavaScript: Obtém parâmetros criptografados executando expressões JS.
- Node.js: Versão 16+.
Como Funciona
O projeto adota uma abordagem de "ponte" com o Playwright, mantendo o ambiente do navegador com o contexto de login bem-sucedido. Ele obtém alguns parâmetros criptografados executando expressões JavaScript. Essa abordagem evita o complexo trabalho de reproduzir o código JS de criptografia central, reduzindo significativamente a dificuldade de engenharia reversa.
Requisitos de Ambiente
Requisitos de Sistema
- Python 3.9.6+
- Node.js 16+
Gerenciamento de Dependências
O projeto adicionou uv
para gerenciar as dependências do projeto. Você pode usar o uv para substituir o pip tradicional para instalar dependências, o que é mais conveniente e rápido.
Instalação e Implantação
Etapas Básicas de Instalação
# Entrar no diretório raiz do projeto
cd MediaCrawler
# Criar ambiente virtual
python -m venv venv
# Ativar ambiente virtual
# macOS & Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# Instalar dependências
pip install -r requirements.txt
# Instalar o navegador Playwright
playwright install
Inicialização do Banco de Dados (Opcional)
# Executar a inicialização do banco de dados (apenas na primeira execução)
python db.py
Como Usar
Comandos Básicos
# Web scraping de pesquisa por palavra-chave
python main.py --platform xhs --lt qrcode --type search
# Web scraping de ID de postagem especificado
python main.py --platform xhs --lt qrcode --type detail
# Ver informações de ajuda
python main.py --help
Descrição da Configuração
- O projeto não ativa o modo de web scraping de comentários por padrão.
- Se precisar coletar comentários, modifique a variável
ENABLE_GET_COMMENTS
em config/base_config.py
.
- Outras configurações de função também podem ser visualizadas em
config/base_config.py
, todas com explicações em chinês.
Armazenamento de Dados
Métodos de Armazenamento Suportados
- Banco de Dados MySQL: Suporta armazenamento em banco de dados relacional (é necessário criar o banco de dados antecipadamente).
- Arquivo CSV: Salva em um arquivo no formato CSV no diretório
data/
.
- Arquivo JSON: Salva em um arquivo no formato JSON no diretório
data/
.
Vantagens da Versão Pro
O projeto também oferece a versão MediaCrawlerPro, que tem as seguintes vantagens em relação à versão de código aberto:
- Suporte a múltiplas contas + proxy IP (recurso principal)
- Remoção da dependência do Playwright, tornando o uso mais simples
- Suporte ao uso em ambiente Linux
- Refatoração e otimização do código, mais fácil de ler e manter
- Desacoplamento da lógica de assinatura JS, maior qualidade do código
- Design de arquitetura perfeito, mais fácil de expandir
- Novo software de desktop para download de vídeos de mídia social
- Suporte para recomendação de feed de notícias da página inicial de múltiplas plataformas (HomeFeed)
Declaração Legal
Isenção de Responsabilidade
- Este projeto é apenas para fins de aprendizado e pesquisa e está proibido de ser usado para fins comerciais.
- É estritamente proibido para fins ilegais ou para infringir os direitos e interesses legítimos de outros.
- Os usuários devem cumprir as leis e regulamentos relevantes e arcar com a responsabilidade legal.
- Os desenvolvedores não são responsáveis por quaisquer responsabilidades legais causadas pelo uso deste projeto.
Valor do Projeto
MediaCrawler não é apenas uma ferramenta de web scraping, mas também um excelente projeto de aprendizado:
- Aprendizado de design de arquitetura: O design da arquitetura do projeto é maduro e vale a pena aprender e emular.
- Prática técnica: Abrange a aplicação abrangente de várias pilhas de tecnologia.
- Pensamento de engenharia: Prática completa de engenharia desde a organização do código até a implantação.
- Tecnologia anti-web scraping: Aprenda sobre soluções para lidar com tecnologias modernas de anti-web scraping.