Wie wir das gesamte Web analysiert haben, um zu sehen, was Menschen auf ihren Websites einbetten. Für 300 Euro.
Von Idego Group

Idego Group hat ein ehrgeiziges Projekt zur Analyse eingebetteter Inhalte im gesamten Internet unternommen. Ein Kunde bat um Datenextraktion darüber, was Menschen auf Websites einbetten, und suchte dabei speziell nach object- und embed-Tags mit ihren src- oder data-Attributen, geordnet nach Domain.
Das Team nutzte zunächst Scrapy, ein Python-Web-Crawling-Framework, erkannte aber dessen Einschränkungen. Das Tool erforderte eine vordefinierte Domain-Liste und erzeugte verdächtige Verkehrsmuster, die die Nutzung von Proxys erforderten, was den Prozess beides erheblich verlangsamte.
Der Durchbruch kam durch einen Technikblog-Beitrag von Yelp, der beschrieb, wie massive Webdaten wirtschaftlich analysiert werden können. Dies inspirierte Idego, Common Crawl zu nutzen, eine gemeinnützige Initiative, die Internet-Snapshots erstellt. Stand März 2018 enthält der Crawl 3,4 Milliarden Webseiten – das sind 270 TB unkomprimiert. Die Daten kommen in den Formaten WARC, WET und WAT und sind auf Amazons S3 gespeichert.
Die Verarbeitung dieses Volumens erforderte MapReduce auf Amazon EMR (Elastic MapReduce). Dieser verteilte Rechenansatz teilt Aufgaben in Map- (parallele Arbeitsverteilung) und Reduce-Phasen (Konsolidierung der Ergebnisse) auf. Das Team verwendete cc-mrjob, um die Common Crawl-Integration zu optimieren.
Der Snapshot vom Januar 2018 erwies sich als deutlich größer als die 2014er Version, die Yelp analysierte. Während Yelp ähnliche Arbeiten in einer Stunde mit 20 Instanzen abschloss, benötigte Idego 40 vergleichbare Instanzen und etwa 15 Stunden. Die On-Demand-Preise hätten etwa 1.100 Dollar gekostet, aber Spot-Instanzen (ungenutzte Verarbeitungskapazität) reduzierten die Kosten auf etwa 300 Dollar – was eine effiziente Ressourcennutzung für die Datenanalyse im Massenmaßstab demonstriert.