
Rastreie e extraia páginas web (regulares ou onion) através da rede TOR
Ele combina facilidade de uso com os recursos robustos de privacidade do Tor, permitindo coleta de dados segura e não rastreável. Ideal tanto para programadores iniciantes quanto experientes, esta ferramenta é essencial para a coleta responsável de dados na era digital.
[![Release][release-version-shield]][releases-link] [![Last Commit][last-commit-shield]][commit-link] ![Python][python-version-shield] [![Quality Gate Status][quality-gate-shield]][quality-gate-link] [![license][license-shield]][license-link]
Se você é um maníaco por terminal, sabe que as coisas precisam ser simples e claras. Passar a saída para outras ferramentas é necessário e a precisão é fundamental.
Com um único argumento, você pode ler uma página .onion ou uma página comum, através da rede TOR e, usando pipes, você pode passar a saída para qualquer outra ferramenta que preferir.
$ torcrawl -u http://www.github.com/ | grep 'google-analytics'
<meta-name="google-analytics" content="UA-XXXXXX- ">
Se quiser rastrear os links de uma página web, use -c e BAM, você terá em um arquivo todos os links internos. Você pode até usar -d para rastreá-los e assim por diante. Também pode usar o argumento -p para aguardar alguns segundos antes do próximo rastreamento.
$ torcrawl -v -u http://www.github.com/ -c -d 2 -p 2
# TOR is ready!
# URL: http://www.github.com/
# Your IP: XXX.XXX.XXX.XXX
# Crawler started from http://www.github.com/ with 2 depth crawl and 2 second(s) delay:
# Step 1 completed with: 11 results
# Step 2 completed with: 112 results
# File created on /path/to/project/links.txt
[!TIP]
O crawling não é ilegal, mas violar direitos autorais é. É sempre melhor verificar duas vezes os Termos e Condições de um site antes de começar a rastreá-lo. Alguns sites configuram o chamadorobots.txtpara informar aos crawlers que não visitem essas páginas.
Este crawler permitirá que você contorne isso, mas sempre recomendamos respeitar o robots.txt.
pip install torcrawlgit clone https://github.com/MikeMeliz/TorCrawl.py.gitpip install -r requirements.txtapt-get install torservice tor starttor.exe][tor-download], e:tor.exe --service installtor.exe --service startbrew install torbrew services start tor| arg | Longa | Descrição |
|---|---|---|
| Geral: | ||
| -h | --help | Mensagem de ajuda |
| -v | --verbose | Mostrar mais informações sobre o progresso |
| -u | --url *.onion | URL da página web a rastrear ou extrair |
| -w | --without | Sem usar a rede TOR |
| -rua | --random-ua | Ativar rotação aleatória de user-agent para requisições |
| -rpr | --random-proxy | Ativar rotação aleatória de proxy a partir de res/proxies.txt (requer a flag -w, um proxy por linha, formato: host:port) |
| -px | --proxy | Endereço IP para proxy SOCKS5 (Padrão: 127.0.0.1 para usar TOR) |
| -pr | --proxyport | Porta para proxy SOCKS5 (Padrão: 9050) |
| -f | --folder | O diretório que conterá os arquivos gerados |
| -V | --version | Mostrar versão e sair |
| Extrair: | ||
| -e | --extract | Extrair o código da página para o terminal ou arquivo (Padrão: Terminal) |
| -i | --input filename | Arquivo de entrada com URL(s) (separadas por linha) |
| -o | --output [filename] | Saída da(s) página(s) para arquivo(s) (para uma página) |
| -y | --yara | Realizar busca por palavra-chave yara: h = buscar em todo o objeto html, t = buscar apenas no texto |
| Rastrear: | ||
| -c | --crawl | Rastrear site (Saída padrão em website/links.txt) |
| -d | --depth | Definir profundidade do percurso do rastreador (Padrão: 1) |
| -p | --pause | Segundos de pausa entre requisições (Padrão: 0) |
| -j | --json | Exportar descobertas do rastreamento para JSON além das saídas txt |
| -x | --xml | Exportar descobertas do rastreamento para XML além das saídas txt |
| -DB | --database | Exportar descobertas do rastreamento e grafo de links para banco de dados SQLite |
| -vis | --visualization | Gerar visualização HTML a partir do banco de dados SQLite (requer -DB) |
| -l | --log | Arquivo de log com URLs visitadas e seu código de resposta |
Para apenas extrair uma única página web para o terminal:
$ python torcrawl.py -u http://www.github.com
<!DOCTYPE html>
...
</html>
Extraia para um arquivo (github.htm) sem o uso do TOR:
$ python torcrawl.py -w -u http://www.github.com -o github.htm
## File created on /script/path/github.htm
Extraia para o terminal e encontre apenas a linha com google-analytics:
$ python torcrawl.py -u http://www.github.com | grep 'google-analytics'
<meta name="google-analytics" content="UA-*******-*">
Extraia para um arquivo e encontre apenas a linha com google-analytics usando yara:
$ python torcrawl.py -v -w -u https://github.com -e -y 0
...
Nota: atualize res/keyword.yar para procurar outras palavras-chave.
Use -y 0 para pesquisa em html bruto e -y 1 apenas para pesquisa em texto.
Extraia um conjunto de páginas web (importadas de arquivo) para o terminal:
$ python torcrawl.py -i links.txt
...