KISS Crawler – Visualisierung von Netzwerken

Netzwerkdarstellung
Das Netzwerk wird bei jedem Klick erweitert.

Idee:

Im Grunde besteht die Idee aus zwei Teilen, einem Crawler und einem Graphen, mit dem die Ergebnisse des Crawlers, zur einfacheren Auffassung, visuell dargestellt werden können. Ganz nach dem KISS Prinzip, Keep It Simple, Stupid. Der Crawler soll Schrittweise diverse Fähigkeiten implementiert bekommen um dessen Einsatzgebiet kontinuierlich zu erweitern. Am Anfang, soll der Crawler ganz simple von „Link zu Link“ sich durch eine Webseite crawlen und interne wie auch externe Links sammeln. Die gesammelten Daten, in der Grundversion externe Verlinkungen, sollen dann in einem Graphen dargestellt werden. Hierbei stellt eine Domain die Einstiegsseite dar, um welche dann alle gefundenen externen Verlinkungen als Domain dargestellt werden.

Dieser einfache Crawler bildet das Grundsystem für weitere Ausbaustufen, welche bei der Weiterentwicklung eine „Landkarte“ der Vernetzung diverser Webseiten aufzeigen soll. Die erste Erweiterung soll eine Sprachanalyse der gefunden Webseiten beinhalten. Hierbei möchte ich mit einer simplen Buchstabenhäufigkeitanalyse Rückschlüsse auf die Sprache schliessen, in der der Inhalt der Webseite geschrieben ist. darauf soll dann eine eigene Verschlagwortung über eine Häufigkeitsanalyse der verwendeten Worte auf der Seite stattfinden, über die der Seiteninhalt katalogisiert wird. Das Ergebnis der Katalogisierung soll dann als Farbkodierung in den Graphen einfliessen.

Nachdem der Crawler diese Fertigkeit beherrscht wird der Crawler für das  Deepweb/Darkweb angepasst. Hierbei soll dieser schnell und einfach relevante Information auf Seiten oder Teilbereichen des Deepweb visualisieren.

Parallel soll der Crawler auch dahin weiterentwickelt werden, Facebook Profilseiten Crawlen und somit Informationen über Personen und deren Verbindungen mit damit verbunden Einstellungen aufzuzeigen. Natürlich sind nicht alle Seiten crawlbar, dennoch gibt es verschiedene Möglichkeiten um an grundliegende Informationen zu gelangen, welche eine Darstellung in einem Graphen ermöglichen.

Im letzten Schritt soll eine biometrische Erkennung gefundene Fotos analysieren und katalogisieren, dieser Schritt ermöglicht es fehlende Informationen bei beispielsweise Facebook Profilseiten zu ergänzen. Oder Webseiten nicht nur nach Schlagworten sondern auch nach Personen zu durchsuchen. Die biometrische Erkennung wird auf einer Python Implementierung aufbauen, da Python im Gegensatz zu reinem Java nicht in einer Virtuellen Laufzeitumgebung ausgeführt wird und somit viel schneller und vor allem einfacher mit der openCV API betrieben werden kann.

Umsetzung:

  1. Einstiegsseite laden und deren Quelltext nach Verlinkungen durchsuchen
  2. zwischen internen und externen Verlinkungen unterscheiden und sortieren
  3. neue interne Verlinkungen in eine Queue legen, schon durchsuchte Links verwerfen
  4. Verlinkungen aus der Queue holen und diese wieder nach weiteren Links durchsuchen
  5. wenn die Queue leer ist, terminieren und das Netz der Verlinkungen darstellen
  6. jede externe Domain wird als Node eines Netzes dargestellt

Ausbaustufe:

  1. aktuellen Stand des Netzwerkes mit den gecrawlten Daten als CSV-Datei speichern
  2. Nodes zeigen per Mouse over die URL an, von der die Verlinkung aus abgeht
  3. Klick auf einen Node crawlt dessen Verlinkung und fügt diese in den Graphen ein
  4. Seite beim Crawlen analysieren und durch Farbenkodierung im Graphen kategorisieren
  5. häufige Verlinkungen auf eine bestimmte Seite durch dickere Edges darstellen
  6. Crawler für das Dark Web anpassen um eine Art Landkarte diverser Foren zu erstellen
  7. Analyse erweitern um Sprache und Inhalt zu analysieren, automatische Verschlagwortung
  8. farbliche Kodierung der Darkweb Seiten auf deren Inhalt

Parallele Entwicklung:

  1. Crawler für das Crawlen von Facebook Profilseiten anpassen*
  2. Profilseiten aufrufen und crawlen und Informationen analysieren*
  3. sofern möglich Freundschaftsbeziehungen auflösen und in den Graphen übernehmen
  4. Beiträge analysieren und mittels Verschlagwortung katalogisieren
  5. anonymisierten Node farblich kodieren

*Datenschutz wird berücksichtig: es werden keine Daten gespeichert, alle gecrawlten Informationen werden ohne personenbezogene Daten wie Namen verarbeitet.

Version-0.1:

Eine Einstiegspunkt wird als String in Form einer Domain mit zu gehöriger Top-Level-Domain eingegeben und dann in eine URL umgewandelt. Hierbei werden alle Möglichkeiten überprüft (http://<<Domain.TLD>>, https://<<Domain.TLD>>, http://www.<<Domain.TLD>>, https://www.<<Domain.TLD>>), in den Arbeitsspeicher geladen und nach Links durchsucht.
Links können im Quellcode mit und ohne den HTML Tag „href“ vorhanden sein.

Version-0.2:

Die gefunden Links werden anhand Ihrer Hostadresse differenziert, ob diese auf eine externe Seite geht oder eine interne Verlinkung ist. Eine externe Verlinkung wird auf ihre Domain reduziert und in ein HashSet gespeichert um Duplikate zu vermeiden und Zugriffszeiten niedrig zu halten.

Kategorisierung der gefunden Links
Kategorisierung der gefunden Links an Hand von http://haberland.it

Version-0.3:

Alle besuchten Seiten werden in ein HashSet gelegt, damit man bei einer Überprüfung, ob die Seite schon besucht wurde, random auf den Link zugreifen kann und nicht bei jeder Überprüfung durch die gesamte Liste iterieren muss. Interne Verlinkungen werden komplett übernommen und in die Queue gelegt um dann nach weiteren Links gecawlt zu werden.

Version-0.4:

Lade abgelegte interne URL’s aus der Queue und crawle diese Seite nach weiteren Verlinkungen.

Version-0.5:

Ist die Queue leer, wurde jede interne Verlinkung gefunden und die damit verbundene Seite auf weitere Verlinkungen gefunden. Eine leere Queue bedeutet, dass es keine neuen/weiteren Verlinkungen auf der Seite gibt.

Version-0.6:

Ein Graph wird erstellt, in dem die Einstiegseite als Domain den ersten Node darstellt. Von diesem Node gehen dann alle gefunden externen Domains als Node mit der verbunden Edge ab.

haberland.it gecrawlt und dargestellt (Version 0.6)
haberland.it gecrawlt und externe Verlinkungen in einem Graphen dargestellt (Version 0.6)

1. Erweiterung-3:

Durch Klicken auf eine externe Domain, wird der Crawler neu initialisiert und crawlt die neue Domain auf interne und externe Verlinkungen. Hierbei werden schon gecrawlte Domains berücksichtigt und nicht erneut gecrawlt.

Erweiterung des Netzwerkes
Durch Klicken auf einen Node werden weitere Domains auf Verlinkungen gecrawlt.
Erweiterung des Netzwerkes
Das Netzwerk wird bei jedem Klick erweitert.

 

Über Raffael Haberland 11 Artikel
Informatikstudent an der Technischen Universität Darmstadt,

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*