
Rastrear y extraer páginas web (normales o onion) a través de la red TOR
Combina la facilidad de uso con las robustas funciones de privacidad de Tor, permitiendo una recopilación de datos segura e imposible de rastrear. Ideal tanto para programadores novatos como experimentados, esta herramienta es esencial para la recopilación responsable de datos en la 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]
Si eres un maníaco de la terminal, sabes que las cosas tienen que ser simples y claras. Pasar la salida a otras herramientas es necesario y la precisión es la clave.
Con un solo argumento, puedes leer una página web .onion o una normal, a través de la red TOR y, usando tuberías, puedes pasar la salida a cualquier otra herramienta que prefieras.
$ torcrawl -u http://www.github.com/ | grep 'google-analytics'
<meta-name="google-analytics" content="UA-XXXXXX- ">
Si quieres rastrear los enlaces de una página web, usa -c y BAM, tendrás en un archivo todos los enlaces internos. Incluso puedes usar -d para rastrearlos y así sucesivamente. También puedes usar el argumento -p para esperar algunos segundos antes del siguiente rastreo.
$ 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]
El rastreo no es ilegal, pero violar los derechos de autor sí lo es. Siempre es mejor verificar dos veces los términos y condiciones de un sitio web antes de comenzar a rastrearlo. Algunos sitios web configuran lo que se denominarobots.txtpara indicar a los rastreadores que no visiten esas páginas.
Este rastreador te permitirá saltarte esto, pero siempre recomendamos respetar 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], y:tor.exe --service installtor.exe --service startbrew install torbrew services start tor| arg | Largo | Descripción |
|---|---|---|
| General: | ||
| -h | --help | Mensaje de ayuda |
| -v | --verbose | Mostrar más información sobre el progreso |
| -u | --url *.onion | URL de la página web a rastrear o extraer |
| -w | --without | Sin usar la red TOR |
| -rua | --random-ua | Habilitar la rotación aleatoria de user-agent para las solicitudes |
| -rpr | --random-proxy | Habilitar la rotación aleatoria de proxy desde res/proxies.txt (requiere el flag -w, un proxy por línea, formato: host:port) |
| -px | --proxy | Dirección IP para el proxy SOCKS5 (Predeterminado: 127.0.0.1 para usar TOR) |
| -pr | --proxyport | Puerto para el proxy SOCKS5 (Predeterminado: 9050) |
| -f | --folder | El directorio que contendrá los archivos generados |
| -V | --version | Mostrar versión y salir |
| Extract: | ||
| -e | --extract | Extraer el código de la página a la terminal o a un archivo (Predeterminado: Terminal) |
| -i | --input filename | Archivo de entrada con URL(s) (separadas por línea) |
| -o | --output [filename] | Salida de página(s) a archivo(s) (para una página) |
| -y | --yara | Realizar búsqueda de palabras clave con yara: h = buscar en todo el objeto html, t = buscar solo en el texto |
| Crawl: | ||
| -c | --crawl | Rastrear sitio web (Salida predeterminada en website/links.txt) |
| -d | --depth | Establecer la profundidad del recorrido del rastreador (Predeterminado: 1) |
| -p | --pause | Segundos de pausa entre solicitudes (Predeterminado: 0) |
| -j | --json | Exportar los hallazgos del rastreo a JSON además de las salidas txt |
| -x | --xml | Exportar los hallazgos del rastreo a XML además de las salidas txt |
| -DB | --database | Exportar los hallazgos del rastreo y el grafo de enlaces a una base de datos SQLite |
| -vis | --visualization | Generar visualización HTML desde la base de datos SQLite (requiere -DB) |
| -l | --log | Archivo de registro con las URL visitadas y su código de respuesta |
Para simplemente extraer una sola página web a la terminal:
$ python torcrawl.py -u http://www.github.com
<!DOCTYPE html>
...
</html>
Extraer a un archivo (github.htm) sin el uso de TOR:
$ python torcrawl.py -w -u http://www.github.com -o github.htm
## File created on /script/path/github.htm
Extraer a la terminal y encontrar solo la línea con google-analytics:
$ python torcrawl.py -u http://www.github.com | grep 'google-analytics'
<meta name="google-analytics" content="UA-*******-*">
Extraer al archivo y encontrar solo la línea con google-analytics usando yara:
$ python torcrawl.py -v -w -u https://github.com -e -y 0
...
Nota: actualice res/keyword.yar para buscar otras palabras clave.
Use -y 0 para búsqueda en html sin procesar y -y 1 solo para búsqueda de texto.
Extraer un conjunto de páginas web (importadas desde un archivo) a la terminal:
$ python torcrawl.py -i links.txt
...