
Web Crawler CLI Interattivo
Web Crawler CLI interattivo.
Evine è un web crawler e web scraper semplice, veloce e interattivo scritto in Golang. Evine è utile per un'ampia gamma di scopi come estrazione di metadati e dati, data mining, ricognizione e test.
Se ti piace il progetto, dagli una stella. Mi spinge a sviluppare il progetto!
Sono disponibili anche versioni binarie precompilate (consigliate).
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: è richiesto golang 1.13.x.
evine -h
Mostrerà l'aiuto per lo strumento:
Le chiavi sono parole chiave predefinite che possono essere usate per specificare dati come URL in-scope, URL fuori scope, email, ecc. Elenco di tutte le chiavi:
Forse vuoi un file che non è definito nelle chiavi. Cosa puoi fare? Puoi semplicemente scrivere l'estensione del file nella vista Query. come png, xml, txt, docx, xlsx, a, mp3, ecc.
Se hai competenze base di JQuery, puoi facilmente usare questa funzione, ma se non le hai, non è molto difficile. Per una panoramica rapida sui selettori w3schools è un'ottima fonte.
esempio (Per trovare source[src]):
$("source").attr("src") // Per trovare tutti gli URL di source[src]
$("h1").text() // Per trovare i valori h1
Template:
$("SELECTOR").METHOD_NAME("arg")
Non supporta query come quelle sotto:
$('SELECTOR').METHOD("arg")
$('SELECTOR').METHOD('arg')
$("SELECTOR" ).METHOD("arg" )
I metodi sono descritti di seguito:
Per segnalare bug o suggerimenti, crea un issue.
Evine è fortemente ispirato da wuzz.
| Tasto | Descrizione |
|---|
| Invio | Avvia il crawler (dalla vista URL) |
| Invio | Mostra la risposta (dalle viste Keys e Regex) |
| Tab | Vista successiva |
| Ctrl+Spazio | Avvia il crawler |
| Ctrl+S | Salva la risposta |
| Ctrl+Z | Esci |
| Ctrl+R | Ripristina valori predefiniti (dalle viste Options e Headers) |
| Ctrl+Q | Chiudi la vista di salvataggio risposta (dalla vista Save) |
| flag | Descrizione | Esempio |
|---|
| -url | URL da cui fare crawl | evine -url toscrape.com |
| -url-exclude string | Esclude URL che corrispondono a questa regex (predefinito ".*") | evine -url-exclude ?id= |
| -domain-exclude string | Esclude domini in-scope dal crawl. Separare con virgola. predefinito=dominio radice | evine -domain-exclude host1.tld,host2.tld |
| -code-exclude string | Esclude codici di stato HTTP con questi codici. Separare con '|' (predefinito ".*") | evine -code-exclude 200,201 |
| -delay int | Pausa tra ogni richiesta (millisecondi) | evine -delay 300 |
| -depth | Livello di profondità di ricerca dello scraper (predefinito 1) | evine -depth 2 |
| -thread int | Numero di goroutine concorrenti per la risoluzione (predefinito 5) | evine -thread 10 |
| -header | Intestazione HTTP per ogni richiesta (i campi devono essere separati da \n). | evine -header KEY: VALUE\nKEY1: VALUE1 |
| -proxy string | Proxy secondo schema://ip:porta | evine -proxy http://1.1.1.1:8080 |
| -scheme string | Imposta lo schema per le richieste (predefinito "https") | evine -scheme http |
| -timeout int | Secondi di attesa prima del timeout (predefinito 10) | evine -timeout 15 |
| -query string | Espressione JQuery (può essere un'estensione di file (pdf), una chiave di query (url,script,css,..) o un selettore jquery ($("a[class='hdr']).attr('hdr')"))) | evine -query url,pdf,txt |
| -regex string | Cerca l'espressione regolare nei contenuti della pagina | evine -regex 'User.+' |
| -logger string | Registra errori in un file | evine -logger log.txt |
| -max-regex int | Risultato massimo della ricerca regex per il campo regex (predefinito 1000) | evine -max-regex -1 |
| -robots | Analizza robots.txt per URL e li usa come semi | evine -robots |
| -sitemap | Analizza sitemap.xml per URL e li usa come semi | evine -sitemap |
| -wayback | Analizza WayBackURLs (web.archive.org) per URL e li usa come semi | evine -sitemap |