Wichtige Details
Zugriff auf mehrere Datenquellen mit Data Scraping.
-
HerausforderungSchnelles und genaues Scraping von Daten aus mehreren Quellen
-
LösungBewährte Verfahren für robustes und widerstandsfähiges Web Scraping
-
Technologien und WerkzeugeMicrosoft Azure Cloud Services für Infrastruktur-Hosting, Tuning und Verwaltung. Python-Sprache mit den erforderlichen Bibliotheken und Frameworks (Azure-sdk, Scrapy, Selenium usw.) für das Scraping und Crawling von Websites
Kunde
Der Kunde ist eine nichtkommerzielle Organisation, die afroamerikanische Kleinunternehmen und Unternehmer unterstützt. Sie sind stolz darauf, Dienstleistungen anzubieten, die afroamerikanischen Unternehmern helfen, Zuschüsse zu erhalten und bei Wettbewerben erfolgreich zu sein.
Herausforderung: schnelles und genaues Scraping von Daten aus verschiedenen Quellen
Der Kunde hat regelmäßig mit riesigen Datenmengen zu tun, die aus verschiedenen Quellen stammen. Daher ist die Datenverwaltung für ihn zu einem Problem geworden.
Sie wollten Jobangebote, Mentoren und Netzwerkmöglichkeiten für talentierte afroamerikanische Unternehmer von verschiedenen Websites zusammensuchen und auf ihrer eigenen Plattform veröffentlichen. So können Unternehmer auf einfache Weise Unternehmen im Besitz von Afroamerikanern entdecken und sie unterstützen oder ihr eigenes Unternehmen gründen.
ESSID Solutions wurde mit der Aufgabe konfrontiert, eine leistungsstarke Lösung für das Scraping von Daten für den Markt des Kunden zu entwickeln.
Lösung: bewährte Verfahren für robustes und widerstandsfähiges Web Scraping
Unser Team von Ingenieuren hat sein Fachwissen im Bereich Data Scraping eingesetzt, um eine effektive Datenerfassung aus verschiedenen Quellen zu ermöglichen.
Das Team von ESSID Solutions sollte die Infrastruktur und den Codefluss für den Kunden einrichten:
-
Git und CI/CD Teil
Für die Code-Verwaltung wurde das AzureDevOps-Repository mit einem solchen Pipeline-Setup verwendet, das es unserem Team ermöglichte, mithilfe eines parallelen Job-Agenten Docker-Images zu erstellen und in die Registry zu übertragen.
-
Registry und Logic App Teil
Als nächstes haben wir Azure Docker Container Registry auf Azurblau Portal, um unsere Docker-Images zu speichern.
Dann mussten wir Docker-Instanzen aus Images erstellen, indem wir Azure Logic App verwendeten, um den Scraper-Code parallel und separat auszuführen.
-
Teil des Abstreifers
In dieser Phase erstellte das ESSID Solutions-Team Container-Instanzen mit Logic-Apps. Dann mussten wir jedem Container Zugriff auf Azure-Ressourcen und sensible Daten wie Kennwörter, Verbindungszeichenfolgen usw. geben, die in Azure KeyVault gespeichert waren.
Um die Ergebnisse der Scraper zu speichern, beschloss unser Team, ein Speicherkonto einzurichten, das wie ein Cloud-Ordner zum Speichern der gescrapten Daten fungieren sollte. Danach waren wir in der Lage, unsere Scraper manuell zu starten, aber wir benötigten eine gewisse Orchestrierung, Automatisierung und Nachbearbeitung.
-
Data Factory und Orchestrierungsteil
Unsere Ingenieure haben alle unsere Scraper mit Time-Trigger und in einer einzigen Pipeline mit Azure Data Factory ausgeführt.
Die Hauptpipeline sollte alle Container mit Anfragen über die Azure-API starten, dann die DataBricks Notebooks zur Verarbeitung der gesammelten Daten.
-
DataBricks
In dieser Phase haben wir alle Daten von den Websites gelöscht (da das inkrementelle Laden von Daten von Websites nicht möglich oder schwierig ist) und die Daten vollständig in der Datenbank verarbeitet/gespeichert. Bevor wir neue Daten in die Datenbank geladen haben, haben wir die vorhandenen Daten gelöscht.
Als Ergebnis hat der Kunde eine robuste Data-Scraping-Lösung, die Daten von mehreren Websites und Unternehmensverzeichnissen ausliest und Informationen über von Afroamerikanern gegründete Unternehmen sammelt, die für die Abonnenten der Plattform des Kunden nützlich sind.
Ergebnis: Optimierung des Data Scraping für kürzere Bearbeitungszeiten
Unser Team aus Datenwissenschaftlern und -ingenieuren griff auf mehrere Quellen zurück, um die Anforderungen des Kunden an die Datenauswertung zu erfüllen.
Unsere Lösung hat den Kunden auf folgende Weise unterstützt:
- Datenextraktion in großem Maßstab
- Strukturierte Daten geliefert
- Wartungsarm und schnell
- Leicht umsetzbar
- Automatisierung.