
Interaktiver CLI-Webcrawler
Interaktiver CLI-Webcrawler.
Evine ist ein einfacher, schneller und interaktiver Webcrawler und Web-Scraper, geschrieben in Golang. Evine ist für eine Vielzahl von Zwecken nützlich, wie z. B. Metadaten- und Datenextraktion, Data Mining, Aufklärung und Tests.
Wenn dir das Projekt gefällt, gib ihm einen Stern. Das zwingt mich, das Projekt weiterzuentwickeln!
Vorgefertigte Binärversionen sind ebenfalls verfügbar (empfohlen).
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
Hinweis: golang 1.13.x erforderlich.
evine -h
Es zeigt die Hilfe für das Tool an:
Schlüssel sind vordefinierte Schlüsselwörter, die verwendet werden können, um Daten wie In-Scope-URLs, Out-of-Scope-URLs, E-Mails usw. anzugeben. Liste aller Schlüssel:
Vielleicht möchten Sie eine Datei, die nicht in Schlüsseln definiert ist. Was können Sie tun? Sie können einfach die Erweiterung der Datei in der Abfrageansicht schreiben, wie png, xml, txt, docx, xlsx, a, mp3 usw.
Wenn Sie grundlegende jQuery-Kenntnisse haben, können Sie diese Funktion leicht nutzen, aber wenn nicht, ist sie nicht sehr schwierig. Für einen schnellen Überblick über die Selektoren ist w3schools eine großartige Quelle.
Beispiel (um source[src] zu finden):
$("source").attr("src") // To find all of source[src] urls
$("h1").text() // To find h1 values
Vorlage:
$("SELECTOR").METHOD_NAME("arg")
Es unterstützt keine Abfragen wie die folgenden:
$('SELECTOR').METHOD("arg")
$('SELECTOR').METHOD('arg')
$("SELECTOR" ).METHOD("arg" )
Methoden werden unten beschrieben:
Um Fehler oder Vorschläge zu melden, erstellen Sie ein Issue.
Evine ist stark inspiriert von wuzz.
| Tastenkombination | Beschreibung |
|---|
| Enter | Crawler ausführen (aus URL-Ansicht) |
| Enter | Antwort anzeigen (aus Schlüssel- und Regex-Ansichten) |
| Tab | Nächste Ansicht |
| Ctrl+Space | Crawler ausführen |
| Ctrl+S | Antwort speichern |
| Ctrl+Z | Beenden |
| Ctrl+R | Auf Standardwerte zurücksetzen (aus Optionen- und Header-Ansichten) |
| Ctrl+Q | Antwort-Speicheransicht schließen (aus Speicheransicht) |
| Flag | Beschreibung | Beispiel |
|---|
| -url | Zu crawelnde URL | evine -url toscrape.com |
| -url-exclude string | URLs ausschließen, die diesem Regex entsprechen (Standard ".*") | evine -url-exclude ?id= |
| -domain-exclude string | In-Scope-Domains vom Crawlen ausschließen. Mit Komma trennen. Standard = Root-Domain | evine -domain-exclude host1.tld,host2.tld |
| -code-exclude string | HTTP-Statuscodes mit diesen Codes ausschließen. Mit '|' trennen (Standard ".*") | evine -code-exclude 200,201 |
| -delay int | Verzögerung zwischen jeder Anfrage (Millisekunden) | evine -delay 300 |
| -depth | Suchtiere des Scrapers (Standard 1) | evine -depth 2 |
| -thread int | Die Anzahl gleichzeitiger Goroutinen für die Auflösung (Standard 5) | evine -thread 10 |
| -header | HTTP-Header für jede Anfrage (Die Felder sollten durch \n getrennt sein). | evine -header KEY: VALUE\nKEY1: VALUE1 |
| -proxy string | Proxy nach scheme://ip:port | evine -proxy http://1.1.1.1:8080 |
| -scheme string | Das Schema für die Anfragen festlegen (Standard "https") | evine -scheme http |
| -timeout int | Sekunden bis zum Timeout warten (Standard 10) | evine -timeout 15 |
| -query string | JQuery-Ausdruck (Es kann eine Dateierweiterung (pdf), eine Schlüsselabfrage (url,script,css,..) oder ein jQuery-Selektor ($("a[class='hdr']).attr('hdr')")) sein) | evine -query url,pdf,txt |
| -regex string | Den regulären Ausdruck im Seiteninhalt suchen | evine -regex 'User.+' |
| -logger string | Fehler in einer Datei protokollieren | evine -logger log.txt |
| -max-regex int | Maximales Ergebnis der Regex-Suche für das Regex-Feld (Standard 1000) | evine -max-regex -1 |
| -robots | robots.txt nach URLs durchsuchen und als Seeds verwenden | evine -robots |
| -sitemap | sitemap.xml nach URLs durchsuchen und als Seeds verwenden | evine -sitemap |
| -wayback | WayBackURLs (web.archive.org) nach URLs durchsuchen und als Seeds verwenden | evine -sitemap |