
Rastreador web CLI interactivo
Web Crawler CLI interactivo.
Evine es un web crawler y web scraper simple, rápido e interactivo escrito en Golang. Evine es útil para una amplia gama de propósitos, como extracción de metadatos y datos, minería de datos, reconocimiento y pruebas.
Si te gusta el proyecto, dale una estrella. ¡Me obliga a desarrollar el proyecto!
También están disponibles las versiones binarias precompiladas (recomendado).
go get github.com/saeeddhqan/evine
"$GOPATH/bin/evine" -h
git clone https://github.com/saeeddhqan/evine.git
cd evine
go build .
mv evine /usr/local/bin
evine --help
Nota: se requiere golang 1.13.x.
| Atajo de teclado | Descripción |
|---|---|
| Enter | Ejecutar el crawler (desde la vista URL) |
| Enter | Mostrar respuesta (desde las vistas Keys y Regex) |
| Tab | Siguiente vista |
| Ctrl+Space | Ejecutar el crawler |
| Ctrl+S | Guardar respuesta |
| Ctrl+Z | Salir |
| Ctrl+R | Restaurar valores predeterminados (desde las vistas Options y Headers) |
| Ctrl+Q | Cerrar vista de guardado de respuesta (desde la vista Save) |
evine -h
Mostrará la ayuda de la herramienta:
| bandera | Descripción | Ejemplo |
|---|---|---|
| -url | URL a la que rastrear | evine -url toscrape.com |
| -url-exclude string | Excluir URLs que coincidan con esta regex (por defecto ".*") | evine -url-exclude ?id= |
| -domain-exclude string | Excluir dominios dentro del alcance para rastrear. Separar con coma. Por defecto = dominio raíz | evine -domain-exclude host1.tld,host2.tld |
| -code-exclude string | Excluir códigos de estado HTTP con estos códigos. Separar con '|' (por defecto ".*") | evine -code-exclude 200,201 |
| -delay int | Dormir entre cada solicitud (milisegundos) | evine -delay 300 |
| -depth | Nivel de profundidad de búsqueda del scraper (por defecto 1) | evine -depth 2 |
| -thread int | Número de goroutines concurrentes para resolución (por defecto 5) | evine -thread 10 |
| -header | Cabecera HTTP para cada solicitud (Debe separar los campos con \n). | evine -header KEY: VALUE\nKEY1: VALUE1 |
| -proxy string | Proxy por scheme://ip:puerto | evine -proxy http://1.1.1.1:8080 |
| -scheme string | Establecer el esquema para las solicitudes (por defecto "https") | evine -scheme http |
| -timeout int | Segundos de espera antes de tiempo de espera (por defecto 10) | evine -timeout 15 |
| -query string | Expresión jQuery (Puede ser una extensión de archivo (pdf), una consulta de clave (url,script,css,..) o un selector jQuery ($("a[class='hdr']).attr('hdr')"))) | evine -query url,pdf,txt |
| -regex string | Buscar la expresión regular en el contenido de la página | evine -regex 'User.+' |
| -logger string | Registrar errores en un archivo | evine -logger log.txt |
| -max-regex int | Resultado máximo de búsqueda de regex para el campo regex (por defecto 1000) | evine -max-regex -1 |
| -robots | Rastrear robots.txt para obtener URLs y usarlas como semillas | evine -robots |
| -sitemap | Rastrear sitemap.xml para obtener URLs y usarlas como semillas | evine -sitemap |
| -wayback | Rastrear WayBackURLs (web.archive.org) para obtener URLs y usarlas como semillas | evine -sitemap |
Keys son palabras clave predefinidas que se pueden usar para especificar datos como URLs dentro del alcance, URLs fuera del alcance, correos electrónicos, etc. Lista de todas las keys:
Tal vez quieras un archivo que no esté definido en las keys. ¿Qué puedes hacer? Simplemente escribe la extensión del archivo en la vista Query, como png, xml, txt, docx, xlsx, a, mp3, etc.
Si tienes conocimientos básicos de jQuery, puedes usar fácilmente esta función; pero si no, no es muy difícil. Para tener una vista rápida sobre los selectores, w3schools es una gran fuente.
ejemplo (Para encontrar source[src]):
$("source").attr("src") // Para encontrar todas las URLs de source[src]
$("h1").text() // Para encontrar valores de h1
Plantilla:
$("SELECTOR").METHOD_NAME("arg")
No soporta consultas como las siguientes:
$('SELECTOR').METHOD("arg")
$('SELECTOR').METHOD('arg')
$("SELECTOR" ).METHOD("arg" )
Los métodos se describen a continuación:
Para reportar errores o sugerencias, crea un issue.
Evine está fuertemente inspirado en wuzz.