


Python-Entwickler kennen das Problem: Sie benötigen zuverlässige Unternehmensdaten, und Crunchbase hat sie. Diese Anleitung zeigt Ihnen, wie Sie einen effektiven Crunchbase-Scraper in Python erstellen, der Ihnen die Daten liefert, die Sie benötigen.
Crunchbase verfolgt wichtige Details: Standorte, Geschäftsschwerpunkt, Gründer und Investitionshistorie. Eine manuelle Extraktion aus einem so großen Datensatz ist nicht praktikabel – Automatisierung ist für die Umwandlung dieser Informationen in ein analysierbares Format unerlässlich.
Am Ende dieses Blogs werden wir drei verschiedene Möglichkeiten erkunden, Daten aus Crunchbase mit Crawlee für Python zu extrahieren. Zwei davon werden wir vollständig umsetzen und die Besonderheiten und Herausforderungen der dritten besprechen. Dies wird uns helfen, besser zu verstehen, wie wichtig es ist, die richtige Datenquelle richtig auszuwählen.
Hinweis: Dieser Leitfaden stammt von einem Entwickler aus unserer wachsenden Community. Haben Sie mit Crawlee interessante Projekte realisiert? Treten Sie uns auf Discord bei, um Ihre Erfahrungen und Blog-Ideen zu teilen – wir schätzen die Beiträge von Entwicklern wie Ihnen.
Wichtige Schritte, die wir behandeln werden:
- Projekteinrichtung
- Auswahl der Datenquelle
- Implementierung eines Sitemap-basierten Crawlers
- Analyse des suchbasierten Ansatzes und seiner Grenzen
- Implementierung des offiziellen API-Crawlers
- Fazit und Repository-Zugriff
Voraussetzungen
- Python 3.9 oder höher
- Vertrautheit mit Web-Scraping-Konzepten
- Crawlee für Python v0.5.0
- Poesie v2.0 oder höher
Projektaufbau
Bevor wir mit dem Schaben beginnen, müssen wir unser Projekt einrichten. In dieser Anleitung verwenden wir keine Crawler-Vorlagen (Playwright und Beautifulsoup), daher richten wir das Projekt manuell ein.
-
Poetry installieren
pipx install poetry
-
Erstellen Sie den Projektordner und navigieren Sie zu ihm.
mkdir crunchbase-crawlee && cd crunchbase-crawlee
-
Initialisieren Sie das Projekt mit Poetry und lassen Sie alle Felder leer.
poetry init
Bei Aufforderung:
- Geben Sie für „Kompatible Python-Versionen“ Folgendes ein: >={Ihre Python-Version},=3.10,
- Lassen Sie alle anderen Felder leer, indem Sie die Eingabetaste drücken
- Bestätigen Sie die Generierung, indem Sie „Ja“ eingeben
-
Fügen Sie Crawlee mit den erforderlichen Abhängigkeiten zu Ihrem Projekt hinzu und installieren Sie es mithilfe von Poetry.
poetry add crawlee[parsel,curl-impersonate]
-
Schließen Sie die Projekteinrichtung ab, indem Sie die Standarddateistruktur für Crawlee für Python-Projekte erstellen.
mkdir crunchbase-crawlee && touch crunchbase-crawlee/{__init__.py,__main__.py,main.py,routes.py}
Nachdem wir die grundlegende Projektstruktur eingerichtet haben, können wir verschiedene Methoden zum Abrufen von Daten von Crunchbase erkunden.
Auswahl der Datenquelle
Während wir Zieldaten direkt von der Unternehmensseite extrahieren können, müssen wir die beste Art der Navigation auf der Website auswählen.
Eine sorgfältige Untersuchung der Struktur von Crunchbase zeigt, dass wir drei Hauptoptionen haben, um Daten zu erhalten:
- Sitemap – für die vollständige Site-Durchquerung.
- Suche – zur gezielten Datenerfassung.
- Offizielle API – empfohlene Methode.
Lassen Sie uns jeden dieser Ansätze im Detail untersuchen.
Scraping von Crunchbase mit Sitemap und Crawlee für Python
Sitemap ist eine Standardmethode der Site-Navigation, die von Crawlern wie Google, Ahrefs und anderen Suchmaschinen verwendet wird. Alle Crawler müssen die in robots.txt beschriebenen Regeln befolgen.
Sehen wir uns die Struktur der Sitemap von Crunchbase an:
Wie Sie sehen können, befinden sich Links zu Organisationsseiten in Sitemap-Dateien der zweiten Ebene, die mit gzip komprimiert werden.
Die Struktur einer dieser Dateien sieht folgendermaßen aus:
Das Lastmod-Feld ist hier besonders wichtig. Es ermöglicht die Nachverfolgung, welche Unternehmen ihre Informationen seit der letzten Datenerfassung aktualisiert haben. Dies ist besonders nützlich für regelmäßige Datenaktualisierungen.
1. Konfigurieren des Crawlers für das Scraping
Um mit der Site zu arbeiten, verwenden wir CurlImpersonateHttpClient, der einen Safari-Browser imitiert. Während diese Wahl für die Arbeit mit einer Sitemap unerwartet erscheinen mag, ist sie aufgrund der Schutzfunktionen von Crunchbase erforderlich.
Der Grund dafür ist, dass Crunchbase Cloudflare zum Schutz vor automatisierten Zugriffen nutzt. Dies wird deutlich sichtbar, wenn man den Traffic auf einer Unternehmensseite analysiert:
Eine interessante Funktion ist, dass Challenges.cloudflare nach dem Laden des Dokuments mit Daten ausgeführt wird. Das bedeutet, dass wir zuerst die Daten erhalten und erst dann prüft JavaScript, ob wir ein Bot sind. Wenn der Fingerabdruck unseres HTTP-Clients einem echten Browser hinreichend ähnlich ist, können wir die Daten erfolgreich empfangen.
Cloudflare analysiert den Datenverkehr auch auf Sitemap-Ebene. Wenn unser Crawler nicht legitim aussieht, wird der Zugriff blockiert. Deshalb imitieren wir einen echten Browser.
Um Blockaden aufgrund übermäßig aggressiven Crawlens zu verhindern, konfigurieren wir ConcurrencySettings.
Wenn Sie diesen Ansatz skalieren, benötigen Sie wahrscheinlich Proxys. Detaillierte Informationen zur Proxy-Einrichtung finden Sie in der Dokumentation.
Wir speichern unsere Scraping-Ergebnisse im JSON-Format. So sieht die grundlegende Crawler-Konfiguration aus:
pipx install poetry
2. Implementierung der Sitemap-Navigation
Die Sitemap-Navigation erfolgt in zwei Schritten. Im ersten Schritt benötigen wir eine Liste aller Dateien, die Organisationsinformationen enthalten:
pipx install poetry
Im zweiten Schritt verarbeiten wir Sitemap-Dateien der zweiten Ebene, die im gzip-Format gespeichert sind. Dies erfordert einen besonderen Ansatz, da die Daten zuerst dekomprimiert werden müssen:
mkdir crunchbase-crawlee && cd crunchbase-crawlee
3. Daten extrahieren und speichern
Jede Unternehmensseite enthält eine große Menge an Informationen. Zu Demonstrationszwecken konzentrieren wir uns auf die Hauptfelder: Firmenname, Kurzbeschreibung, Website und Standort.
Einer der Vorteile von Crunchbase besteht darin, dass alle Daten im JSON-Format innerhalb der Seite gespeichert werden:
Dies vereinfacht die Datenextraktion erheblich – wir müssen nur einen Xpath-Selektor verwenden, um den JSON zu erhalten, und dann jmespath anwenden, um die benötigten Felder zu extrahieren:
poetry init
Die gesammelten Daten werden mithilfe der context.push_data-Methode im internen Speicher von Crawlee for Python gespeichert. Wenn der Crawler fertig ist, exportieren wir alle gesammelten Daten in eine JSON-Datei:
poetry add crawlee[parsel,curl-impersonate]
4. Ausführen des Projekts
Sobald alle Komponenten vorhanden sind, müssen wir einen Einstiegspunkt für unseren Crawler erstellen:
mkdir crunchbase-crawlee && touch crunchbase-crawlee/{__init__.py,__main__.py,main.py,routes.py}
Führen Sie den Crawler mit Poetry aus:
# main.py from crawlee import ConcurrencySettings, HttpHeaders from crawlee.crawlers import ParselCrawler from crawlee.http_clients import CurlImpersonateHttpClient from .routes import router async def main() -> None: """The crawler entry point.""" concurrency_settings = ConcurrencySettings(max_concurrency=1, max_tasks_per_minute=50) http_client = CurlImpersonateHttpClient( impersonate='safari17_0', headers=HttpHeaders( { 'accept-language': 'en', 'accept-encoding': 'gzip, deflate, br, zstd', } ), ) crawler = ParselCrawler( request_handler=router, max_request_retries=1, concurrency_settings=concurrency_settings, http_client=http_client, max_requests_per_crawl=30, ) await crawler.run(['https://www.crunchbase.com/www-sitemaps/sitemap-index.xml']) await crawler.export_data_json('crunchbase_data.json')
5. Abschließend die Merkmale der Verwendung des Sitemap-Crawlers
Der Sitemap-Ansatz hat seine deutlichen Vorteile und Einschränkungen. Es ist ideal in den folgenden Fällen:
- Wenn Sie Daten über alle Unternehmen auf der Plattform sammeln müssen
- Wenn es keine spezifischen Kriterien für die Unternehmensauswahl gibt
- Wenn Sie über ausreichend Zeit und Rechenressourcen verfügen
Es sind jedoch erhebliche Einschränkungen zu berücksichtigen:
- Fast keine Möglichkeit, Daten während der Erfassung zu filtern
- Erfordert eine ständige Überwachung der Cloudflare-Blöcke
- Für die Skalierung der Lösung sind Proxyserver erforderlich, was die Projektkosten erhöht
Verwenden Sie die Suche nach Scraping Crunchbase
Die Einschränkungen des Sitemap-Ansatzes könnten darauf hindeuten, dass die Suche die nächste Lösung ist. Allerdings wendet Crunchbase bei seiner Suchfunktion im Vergleich zu seinen öffentlichen Seiten strengere Sicherheitsmaßnahmen an.
Der Hauptunterschied liegt in der Funktionsweise des Cloudflare-Schutzes. Während wir beim Zugriff auf eine Unternehmensseite Daten vor der Challenges.cloudflare-Prüfung erhalten, erfordert die Such-API gültige Cookies, die diese Prüfung bestanden haben.
Lassen Sie uns dies in der Praxis überprüfen. Öffnen Sie den folgenden Link im Inkognito-Modus:
# routes.py from crawlee.crawlers import ParselCrawlingContext from crawlee.router import Router from crawlee import Request router = Router[ParselCrawlingContext]() @router.default_handler async def default_handler(context: ParselCrawlingContext) -> None: """Default request handler.""" context.log.info(f'default_handler processing {context.request} ...') requests = [ Request.from_url(url, label='sitemap') for url in context.selector.xpath('//loc[contains(., "sitemap-organizations")]/text()').getall() ] # Since this is a tutorial, I don't want to upload more than one sitemap link await context.add_requests(requests, limit=1)
Bei der Analyse des Datenverkehrs sehen wir das folgende Muster:
Die Reihenfolge der Ereignisse hier ist:
- Zuerst wird die Seite mit dem Code 403 gesperrt
- Dann wird die Challenges.cloudflare-Prüfung durchgeführt
- Erst nach erfolgreich bestandener Prüfung erhalten wir Daten mit dem Code 200
Um diesen Prozess zu automatisieren, wäre ein Headless-Browser erforderlich, der Cloudflare Turnstile umgehen kann. Die aktuelle Version von Crawlee für Python (v0.5.0) bietet diese Funktionalität nicht, obwohl eine zukünftige Entwicklung geplant ist.
Sie können die Funktionen von Crawlee für Python erweitern, indem Sie Camoufox nach diesem Beispiel integrieren.
Arbeiten mit der offiziellen Crunchbase API
Crunchbase bietet eine kostenlose API mit grundlegenden Funktionen. Benutzer mit kostenpflichtigen Abonnements erhalten erweiterten Datenzugriff. Eine vollständige Dokumentation für verfügbare Endpunkte finden Sie in der offiziellen API-Spezifikation.
1. API-Zugriff einrichten
Um mit der API zu arbeiten, befolgen Sie diese Schritte:
- Erstellen Sie ein Crunchbase-Konto
- Gehen Sie zum Abschnitt „Integrationen“
- Erstellen Sie einen Crunchbase Basic API-Schlüssel
Obwohl in der Dokumentation angegeben ist, dass die Schlüsselaktivierung bis zu einer Stunde dauern kann, beginnt sie normalerweise sofort nach der Erstellung zu funktionieren.
2. Konfigurieren des Crawlers für die API-Arbeit
Eine wichtige API-Funktion ist das Limit – nicht mehr als 200 Anfragen pro Minute, aber in der kostenlosen Version ist diese Zahl deutlich niedriger. Unter Berücksichtigung dessen konfigurieren wir ConcurrencySettings. Da wir mit der offiziellen API arbeiten, müssen wir unseren HTTP-Client nicht maskieren. Wir verwenden den Standard „HttpxHttpClient“ mit voreingestellten Headern.
Speichern wir zunächst den API-Schlüssel in einer Umgebungsvariablen:
pipx install poetry
So sieht die Crawler-Konfiguration für die Arbeit mit der API aus:
mkdir crunchbase-crawlee && cd crunchbase-crawlee
3. Verarbeitung von Suchergebnissen
Für die Arbeit mit der API benötigen wir zwei Hauptendpunkte:
- get_autocompletes – zum Suchen
- get_entities_organizations__entity_id – zum Abrufen von Daten
Zuerst implementieren wir die Suchergebnisverarbeitung:
poetry init
4. Extrahieren von Unternehmensdaten
Nachdem wir die Liste der Unternehmen erhalten haben, extrahieren wir detaillierte Informationen zu jedem Unternehmen:
poetry add crawlee[parsel,curl-impersonate]
5. Erweiterte standortbasierte Suche
Wenn Sie flexiblere Suchfunktionen benötigen, bietet die API einen speziellen Suchendpunkt. Hier ist ein Beispiel für die Suche nach allen Unternehmen in Prag:
mkdir crunchbase-crawlee && touch crunchbase-crawlee/{__init__.py,__main__.py,main.py,routes.py}
Zur Verarbeitung von Suchergebnissen und Paginierung verwenden wir den folgenden Handler:
# main.py from crawlee import ConcurrencySettings, HttpHeaders from crawlee.crawlers import ParselCrawler from crawlee.http_clients import CurlImpersonateHttpClient from .routes import router async def main() -> None: """The crawler entry point.""" concurrency_settings = ConcurrencySettings(max_concurrency=1, max_tasks_per_minute=50) http_client = CurlImpersonateHttpClient( impersonate='safari17_0', headers=HttpHeaders( { 'accept-language': 'en', 'accept-encoding': 'gzip, deflate, br, zstd', } ), ) crawler = ParselCrawler( request_handler=router, max_request_retries=1, concurrency_settings=concurrency_settings, http_client=http_client, max_requests_per_crawl=30, ) await crawler.run(['https://www.crunchbase.com/www-sitemaps/sitemap-index.xml']) await crawler.export_data_json('crunchbase_data.json')
6. Schließlich die Einschränkungen der kostenlosen API
Die kostenlose Version der API weist erhebliche Einschränkungen auf:
- Begrenzte Anzahl verfügbarer Endpunkte
- Autocompletes-Funktion funktioniert nur bei Firmensuchen
- Nicht alle Datenfelder sind zugänglich
- Eingeschränkte Suchfilterfunktionen
Erwägen Sie ein kostenpflichtiges Abonnement für Arbeiten auf Produktionsebene. Die API bietet trotz ihrer Ratenbeschränkungen die zuverlässigste Möglichkeit, auf Crunchbase-Daten zuzugreifen.
Was ist Ihr bester Weg nach vorne?
Wir haben drei verschiedene Ansätze zum Abrufen von Daten von Crunchbase untersucht:
- Sitemap – für groß angelegte Datenerfassung
- Suche – aufgrund des Cloudflare-Schutzes schwer zu automatisieren
- Offizielle API – die zuverlässigste Lösung für kommerzielle Projekte
Jede Methode hat ihre Vorteile, aber für die meisten Projekte empfehle ich die Verwendung der offiziellen API trotz ihrer Einschränkungen in der kostenlosen Version.
Der vollständige Quellcode ist in meinem Repository verfügbar. Haben Sie Fragen oder möchten Sie Einzelheiten zur Implementierung besprechen? Treten Sie unserem Discord bei – unsere Entwickler-Community ist für Sie da.
Das obige ist der detaillierte Inhalt vonAnleitung zum Scrapen von Crunchbase mit Python im Easy Guide). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Python und C haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1) Python ist aufgrund seiner prägnanten Syntax und der dynamischen Typisierung für die schnelle Entwicklung und Datenverarbeitung geeignet. 2) C ist aufgrund seiner statischen Tipp- und manuellen Speicherverwaltung für hohe Leistung und Systemprogrammierung geeignet.

Die Auswahl von Python oder C hängt von den Projektanforderungen ab: 1) Wenn Sie eine schnelle Entwicklung, Datenverarbeitung und Prototypdesign benötigen, wählen Sie Python. 2) Wenn Sie eine hohe Leistung, eine geringe Latenz und eine schließende Hardwarekontrolle benötigen, wählen Sie C.

Indem Sie täglich 2 Stunden Python -Lernen investieren, können Sie Ihre Programmierkenntnisse effektiv verbessern. 1. Lernen Sie neues Wissen: Lesen Sie Dokumente oder sehen Sie sich Tutorials an. 2. Üben: Schreiben Sie Code und vollständige Übungen. 3. Überprüfung: Konsolidieren Sie den Inhalt, den Sie gelernt haben. 4. Projektpraxis: Wenden Sie an, was Sie in den tatsächlichen Projekten gelernt haben. Ein solcher strukturierter Lernplan kann Ihnen helfen, Python systematisch zu meistern und Karriereziele zu erreichen.

Zu den Methoden zum effizienten Erlernen von Python innerhalb von zwei Stunden gehören: 1. Überprüfen Sie das Grundkenntnis und stellen Sie sicher, dass Sie mit der Python -Installation und der grundlegenden Syntax vertraut sind. 2. Verstehen Sie die Kernkonzepte von Python wie Variablen, Listen, Funktionen usw.; 3.. Master Basic und Advanced Nutzung unter Verwendung von Beispielen; 4.. Lernen Sie gemeinsame Fehler und Debugging -Techniken; 5. Wenden Sie Leistungsoptimierung und Best Practices an, z. B. die Verwendung von Listenfunktionen und dem Befolgen des Pep8 -Stilhandbuchs.

Python ist für Anfänger und Datenwissenschaften geeignet und C für Systemprogramme und Spieleentwicklung geeignet. 1. Python ist einfach und einfach zu bedienen, geeignet für Datenwissenschaft und Webentwicklung. 2.C bietet eine hohe Leistung und Kontrolle, geeignet für Spieleentwicklung und Systemprogrammierung. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Python eignet sich besser für Datenwissenschaft und schnelle Entwicklung, während C besser für Hochleistungen und Systemprogramme geeignet ist. 1. Python -Syntax ist prägnant und leicht zu lernen, geeignet für die Datenverarbeitung und wissenschaftliches Computer. 2.C hat eine komplexe Syntax, aber eine hervorragende Leistung und wird häufig in der Spieleentwicklung und der Systemprogrammierung verwendet.

Es ist machbar, zwei Stunden am Tag zu investieren, um Python zu lernen. 1. Lernen Sie neues Wissen: Lernen Sie in einer Stunde neue Konzepte wie Listen und Wörterbücher. 2. Praxis und Übung: Verwenden Sie eine Stunde, um Programmierübungen durchzuführen, z. B. kleine Programme. Durch vernünftige Planung und Ausdauer können Sie die Kernkonzepte von Python in kurzer Zeit beherrschen.

Python ist leichter zu lernen und zu verwenden, während C leistungsfähiger, aber komplexer ist. 1. Python -Syntax ist prägnant und für Anfänger geeignet. Durch die dynamische Tippen und die automatische Speicherverwaltung können Sie die Verwendung einfach zu verwenden, kann jedoch zur Laufzeitfehler führen. 2.C bietet Steuerung und erweiterte Funktionen auf niedrigem Niveau, geeignet für Hochleistungsanwendungen, hat jedoch einen hohen Lernschwellenwert und erfordert manuellem Speicher und Typensicherheitsmanagement.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver Mac
Visuelle Webentwicklungstools

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software