GoodFirms ist eine B2B-Plattform, die Unternehmen mit IT-Dienstleistern und Softwareunternehmen verbindet. Mit Tausenden von verifizierten Unternehmensprofilen, Benutzerbewertungen und Details ist GoodFirms eine zentrale Anlaufstelle für Entscheidungsträger, Forscher und Vermarkter, um Branchentrends zu erforschen, Wettbewerber zu finden, auf den Firmenlink in den Suchergebnissen zu klicken oder Partner zu finden.

Ab 2023 verfügt GoodFirms über mehr als 60,000 Unternehmensprofile und detaillierte Einträge in verschiedenen Kategorien wie Softwareentwicklung, digitales Marketing, Entwicklung mobiler Apps und mehr. Die Plattform ist für ihre leistungsstarke Suchfunktion und ihr transparentes Bewertungssystem bekannt, weshalb sie von Unternehmen weltweit genutzt wird.

In diesem Blog erklären wir Ihnen, wie Sie mit Python Daten von der GoodFirms-Website extrahieren und Crawlbase Crawling API. Lass uns anfangen!

Inhaltsverzeichnis

  1. Warum GoodFirms-Daten scrapen?
  2. Wichtige Datenpunkte zum Extrahieren aus GoodFirms
  3. Crawlbase Crawling API für GoodFirms Scraping
  4. Vorbereitung auf GoodFirms Scraping
  • Erforderliche Tools und Bibliotheken
  • Einrichten Ihrer Python-Umgebung
  1. Scraping von GoodFirms-Sucheinträgen
  • Untersuchen von HTML zum Identifizieren von Selektoren
  • Schreiben des GoodFirms Search Listings Scrapers
  • Umgang mit Paginierung
  • Speichern von Scraped-Daten in einer JSON-Datei
  • Vollständiges Codebeispiel
  1. Scraping der Firmenprofilseiten von GoodFirms
  • Untersuchen von HTML zum Identifizieren von Selektoren
  • Extrahieren wichtiger Details aus GoodFirms-Profilen
  • Speichern von Profildaten in einer JSON-Datei
  • Vollständiges Codebeispiel
  1. Abschließende Überlegungen
  2. Häufig gestellte Fragen (FAQs)

Warum GoodFirms-Daten scrapen?

Das Scraping von GoodFirms-Daten kann Unternehmen, Forschern und Entwicklern helfen. Als vertrauenswürdige Plattform mit Tausenden von Unternehmensprofilen und detaillierten Bewertungen verfügt GoodFirms über Daten, die auf viele Arten verwendet werden können:

  • Wettbewerbsanalyse: Erhalten Sie Einblicke in die Dienstleistungen, Preise und Kundenbewertungen der Konkurrenz.
  • Lead-Generierung: Extrahieren Sie Unternehmensdetails wie Kontaktinformationen, Dienstleistungen und bediente Branchen.
  • Marktanalyse: Analysieren Sie Branchentrends, indem Sie sich die leistungsstärksten Unternehmen und Dienste ansehen.
  • Erstellen von Datenbanken: Erstellen Sie ein strukturiertes Repository von IT-Dienstanbietern für Anwendungen wie Empfehlungsmaschinen oder CRMs.
  • Talent Acquisition: Informieren Sie sich über die Teamgröße des Unternehmens, die bedienten Branchen und das betriebliche Know-how, um Möglichkeiten zur Zusammenarbeit oder Einstellung zu finden.
  • Portfolio-Benchmarking: Sehen Sie in Unternehmensportfolios und Fallstudien, was erfolgreiche Projekte ausmacht.
  • Trendverfolgung: Untersuchen Sie Kundenpräferenzen und Nachfragemuster anhand detaillierter Bewertungen und angebotener Dienste.
  • Geschäftserweiterung: Finden Sie potenzielle Märkte oder Zielregionen, indem Sie Unternehmensstandorte und regionale Dienstleistungen analysieren.

Mit dem umfangreichen Datensatz von GoodFirm verfügen Sie über eine Fundgrube an Daten für datengesteuerte Entscheidungen. Durch die Automatisierung des Extraktionsprozesses sparen Sie Zeit und erhalten Zugriff auf umfassende und aktuelle Informationen.

Wichtige Datenpunkte zum Extrahieren aus GoodFirms

Beim Scraping von GoodFirms müssen Sie Daten extrahieren, die Einblicke in Unternehmen und ihre Dienstleistungen geben. Das folgende Bild zeigt die wichtigsten zu extrahierenden Datenpunkte:

Bild mit den wichtigsten Datenpunkten zum Scrapen von der Goodfirms-Website

Crawlbase Crawling API für GoodFirms Scraping

Crawlbase Crawling API eignet sich gut zum Scraping statischer Websites wie GoodFirms. Es kümmert sich um Proxys, HTTP-Header und sorgt für hohe Datengenauigkeit. Mit Crawlbase können Sie Daten aus GoodFirms-Suchlisten und Unternehmensprofilseiten extrahieren, ohne sich um IP-Blockierungen oder CAPTCHA-Herausforderungen kümmern zu müssen.

Installieren Sie zunächst die Crawlbase Python-Bibliothek. Verwenden Sie den folgenden Befehl:

1
pip installieren crawlbase

Nach der Installation benötigen Sie ein API-Token. Sie können Ihr Token erhalten, indem Sie sich auf der Crawlbase-Website anmelden. Dieses Token authentifiziert Ihre Anfragen.

So initialisieren Sie die Crawlbase Crawling API bei Python:

1
2
3
4
5
6
7
8
9
10
11
für Crawlbase importieren CrawlingAPI

# Initialisieren Sie die Crawlbase Crawling API
crawling_api = CrawlingAPI({'Zeichen': 'IHR_CRAWLBASE_TOKEN'})

# Testen Sie Ihr Setup
Antwort = crawling_api.get(„https://www.goodfirms.co/companies“)
if Antwort['Kopfzeilen']['pc_status'] == '200':
drucken(„Einrichtung erfolgreich! Sie sind bereit, GoodFirms zu scrapen.“)
sonst:
drucken(f"Verbindung konnte nicht hergestellt werden. Statuscode: {Antwort['Kopfzeilen']['pc_status']}")

Hinweis: Crawlbase bietet zwei Arten von Tokens. Ein normales Token für statische Websites und ein JS-Token für JS-gerenderte Websites. Für GoodFirms ist das normale Token ausreichend. Crawlbase bietet 1,000 kostenlose Anfragen für seine Crawling API. Überprüf den Dokumentation für mehr.

Mit Crawlbase können Sie Daten scrapen, ohne sich um technische Hürden wie blockierte IPs oder komplexe Header kümmern zu müssen. Im nächsten Abschnitt gehen wir die Einrichtung der Python-Umgebung zum Scrapen von Daten durch.

Vorbereitung auf GoodFirms Scraping

Bevor Sie mit dem Scraping von GoodFirms beginnen, müssen Sie die richtigen Tools und Bibliotheken einrichten. Dieser Abschnitt führt Sie durch den Prozess der Installation der erforderlichen Bibliotheken und der Einrichtung Ihrer Python-Umgebung für das Scraping.

Erforderliche Tools und Bibliotheken

Zum Scrapen von GoodFirms benötigen Sie:

  1. Python: Aufgrund seiner Benutzerfreundlichkeit und robusten Bibliotheken gehört Python zu den besten Sprachen für Web Scraping.
  2. Crawlbase Python-Bibliothek: Dies erleichtert Ihre Crawlbase Crawling API Anrufe.
  3. BeautifulSuppe: Eine Python-Bibliothek zum Parsen von HTML und Extrahieren von Daten daraus.

Installieren von Python und erforderlichen Bibliotheken

Wenn Sie Python nicht installiert haben, laden Sie es hier herunter: Python.org. Nach der Installation können Sie pip verwenden, um die Bibliotheken zu installieren. Führen Sie die folgenden Befehle in Ihrem Terminal aus:

1
2
pip installieren crawlbase
pip install beautifulsoup4

Diese Bibliotheken ermöglichen Ihnen die Interaktion mit der Crawlbase Crawling API, analysieren Sie den HTML-Inhalt von GoodFirms und verarbeiten Sie Anfragen effektiv.

So wählen Sie die richtige IDE für Web Scraping

Zum Schreiben Ihres Scraping-Skripts können Sie jede integrierte Entwicklungsumgebung (IDE) oder jeden Texteditor verwenden. Sie können zwischen einigen der beliebtesten wählen, wie VS-Code, PyCharm und Jupyter Notizbücher.

Scraping von GoodFirms-Sucheinträgen

Hier erfahren Sie, wie Sie Suchlisten von GoodFirms scrapen. Dazu gehört das Überprüfen des HTML, das Schreiben des Scrapers, das Verwalten der Paginierung und das Speichern der Scraped-Daten in einer JSON-Datei.

Untersuchen von HTML zum Identifizieren von Selektoren

Bevor wir mit dem Scraping beginnen, müssen wir die HTML-Struktur der GoodFirms-Suchlistenseite überprüfen, um die CSS-Selektoren zu erhalten, die wir zum Extrahieren der Daten verwenden werden. Folgen Sie diesen Schritten:

  1. Öffnen Sie eine GoodFirms-Sucheintragsseite: Gehen Sie zu den Suchergebnissen für eine Kategorie auf GoodFirms.
  2. Überprüfen Sie die Seite: Klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie „Untersuchen“ (oder drücken Sie Ctrl + Shift + I).
Screenshot der Überprüfung der HTML-Struktur der GoodFirms-Sucheinträge
  1. Identifizieren Sie die relevanten Daten: Suchen Sie nach den HTML-Elementen, die die Unternehmensinformationen enthalten. Zu den üblichen Datenpunkten gehören:
  • Firmenname: Typischerweise gefunden in einem <h3> tag mit der klasse firm-name.
  • Standort: Oft in einem <div> Element mit der Klasse firm-location.
  • Servicekategorie: Normalerweise in einem <div> Element verschachtelt in firm-content und unter dem Klassenslogan.
  • Rating: Wird angezeigt in <span> tag mit der klasse rating-number.
  • Firmenprofil-URL: Gefunden in einem <a> tag mit der klasse visit-profile.

Sobald Sie die relevanten CSS-Selektoren identifiziert haben, können wir mit dem Schreiben des Scrapers fortfahren.

Schreiben des GoodFirms Search Listings Scrapers

Schreiben wir nun den Scraper, um die Unternehmensdaten aus der Suchlistenseite zu extrahieren.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
für bs4 importieren BeautifulSuppe
importieren JSON
für Crawlbase importieren CrawlingAPI

# Initialisieren Sie die Crawlbase-API mit Ihrem Zugriffstoken
crawling_api = CrawlingAPI({'Zeichen': 'IHR_CRAWLBASE_TOKEN'})

def Crawlbase-Anfrage erstellen(URL):
Antwort = crawling_api.get(URL)

if Antwort['Kopfzeilen']['pc_status'] == '200':
html_content = Antwort['Körper'].dekodieren('utf-8')
Rückkehr HTML-Inhalt
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def Firmendetails extrahieren(Unternehmen):
Name = Firma.Wählen Sie eine(„h3.Firmenname“).text.strip() if Firma.Wählen Sie eine(„h3.Firmenname“) sonst ''
Standort = Firma.Wählen Sie eine(„div.Firmenstandort“).text.strip() if Firma.Wählen Sie eine(„div.Firmenstandort“) sonst ''
Kategorie = Firma.Wählen Sie eine(„div.Firmeninhalt > div.Slogan“).text.strip() if Firma.Wählen Sie eine(„div.Firmeninhalt > div.Slogan“) sonst ''
Bewertung = Unternehmen.Wählen Sie eine(„span.rating-Nummer“).text.strip() if Firma.Wählen Sie eine(„span.rating-Nummer“) sonst „Keine Bewertung“
Link = Firma.Wählen Sie eine(„div.firm-urls > a.besuchsprofil“)['href'] if Firma.Wählen Sie eine(„div.firm-urls > a.besuchsprofil“) sonst ''

Rückkehr {
'Süßkartoffel': Name,
'Standort': Standort,
‚Kategorie‘: Kategorie,
'Bewertung': Bewertung,
„Profil-URL“: Verknüpfung
}

def scrape_goodfirms_search_listings(URL):
html_content = make_crawlbase_request(URL)
if nicht HTML-Inhalt:
Rückkehr []

Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')
Unternehmen = Suppe.Auswahl(„ul.firm-Verzeichnisliste > li.firm-Wrapper“)
Firmendaten = []

für den Unternehmen in Unternehmen:
Details = extract_company_details(Unternehmen)
company_data.append(Details)

Rückkehr Firmendaten

# Beispielverwendung
URL = „https://www.goodfirms.co/companies/web-development-agency/london“
Daten = scrape_goodfirms_search_listings(URL)

Umgang mit Paginierung

GoodFirms verwendet eine page Parameter in der URL, um durch die Suchlisten zu navigieren. Um alle Seiten zu scrapen, müssen wir die Paginierung handhaben, indem wir den page Parameters.

So können wir den Scraper für die Paginierung ändern:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def Alle Seiten auslesen(Basis-URL, Anzahl Seiten=5):
"""Mehrere Seiten aus den Suchlisten von GoodFirms scrapen."""
alle_daten = []

für den Seite in Angebot(1, Anzahl_Seiten + 1):
URL = f"{base_url}?Seite={Seite}"
drucken(f"Seite scrapen {Seite}... ")
Daten = scrape_goodfirms_search_listings(URL)
all_data.extend(Daten)

Rückkehr alle_daten

# Anwendungsbeispiel: 5 Seiten scrapen
Basis-URL = „https://www.goodfirms.co/companies/web-development-agency/london“
alle_Daten = alle_Seiten_abrufen(Basis-URL, Anzahl_Seiten=5)

Speichern von Scraped-Daten in einer JSON-Datei

Nach dem Scraping der Daten ist es wichtig, sie in einem leicht zu verarbeitenden Format zu speichern. In diesem Fall speichern wir die Daten in einer JSON-Datei zur späteren Verwendung oder Analyse.

1
2
3
4
5
6
7
8
def speichere_daten_in_json(Daten, Dateiname=„goodfirms_search_data.json“):
"""Speichern Sie die extrahierten Daten in einer JSON-Datei."""
mit XNUMXh geöffnet(Dateiname, 'w') as f:
json.dump(Daten, f, Einzug=4)
drucken(f"Daten gespeichert in {Dateiname}")

# Beispielverwendung
save_data_to_json(alle_Daten)

Die save_data_to_json Die Funktion speichert die Daten als JSON-Datei, sodass sie problemlos in eine Datenbank geladen oder weiterverarbeitet werden können.

Vollständiges Codebeispiel

Hier ist der komplette Daten-Scraper, der alles kombiniert, vom Stellen von Anfragen über die Handhabung der Paginierung bis hin zum Speichern der Daten in einer JSON-Datei:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
für bs4 importieren BeautifulSuppe
importieren JSON
für Crawlbase importieren CrawlingAPI

# Initialisieren Sie die Crawlbase-API mit Ihrem Zugriffstoken
crawling_api = CrawlingAPI({'Zeichen': 'IHR_CRAWLBASE_TOKEN'})

def Crawlbase-Anfrage erstellen(URL):
Antwort = crawling_api.get(URL)

if Antwort['Kopfzeilen']['pc_status'] == '200':
html_content = Antwort['Körper'].dekodieren('utf-8')
Rückkehr HTML-Inhalt
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def Firmendetails extrahieren(Unternehmen):
Name = Firma.Wählen Sie eine(„h3.Firmenname“).text.strip() if Firma.Wählen Sie eine(„h3.Firmenname“) sonst ''
Standort = Firma.Wählen Sie eine(„div.Firmenstandort“).text.strip() if Firma.Wählen Sie eine(„div.Firmenstandort“) sonst ''
Kategorie = Firma.Wählen Sie eine(„div.Firmeninhalt > div.Slogan“).text.strip() if Firma.Wählen Sie eine(„div.Firmeninhalt > div.Slogan“) sonst ''
Bewertung = Unternehmen.Wählen Sie eine(„span.rating-Nummer“).text.strip() if Firma.Wählen Sie eine(„span.rating-Nummer“) sonst „Keine Bewertung“
Link = Firma.Wählen Sie eine(„div.firm-urls > a.besuchsprofil“)['href'] if Firma.Wählen Sie eine(„div.firm-urls > a.besuchsprofil“) sonst ''

Rückkehr {
'Süßkartoffel': Name,
'Standort': Standort,
‚Kategorie‘: Kategorie,
'Bewertung': Bewertung,
„Profil-URL“: Verknüpfung
}

def scrape_goodfirms_search_listings(URL):
html_content = make_crawlbase_request(URL)
if nicht HTML-Inhalt:
Rückkehr []

Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')
Unternehmen = Suppe.Auswahl(„ul.firm-Verzeichnisliste > li.firm-Wrapper“)
Firmendaten = []

für den Unternehmen in Unternehmen:
Details = extract_company_details(Unternehmen)
company_data.append(Details)

Rückkehr Firmendaten

def Alle Seiten auslesen(Basis-URL, Anzahl Seiten=5):
alle_daten = []

für den Seite in Angebot(1, Anzahl_Seiten + 1):
URL = f"{base_url}?Seite={Seite}"
drucken(f"Seite scrapen {Seite}... ")
Daten = scrape_goodfirms_search_listings(URL)
all_data.extend(Daten)

Rückkehr alle_daten

def speichere_daten_in_json(Daten, Dateiname=„goodfirms_search_data.json“):
mit XNUMXh geöffnet(Dateiname, 'w') as f:
json.dump(Daten, f, Einzug=4)
drucken(f"Daten gespeichert in {Dateiname}")

# Beispielverwendung
Basis-URL = „https://www.goodfirms.co/companies/web-development-agency/london“
alle_Daten = alle_Seiten_abrufen(Basis-URL, Anzahl_Seiten=5)
save_data_to_json(alle_Daten)

Beispielausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[
{
"Name": „Einheitliche Infotechnologie“,
"Lage": "London, Vereinigtes Königreich",
"Kategorie": „Mit fortschrittlicher Technologie die digitale Transformation vorantreiben“,
"Bewertung": "5.0",
"Profil-URL": „https://www.goodfirms.co/company/unified-infotech“
},
{
"Name": "Sigli",
"Lage": "London, Vereinigtes Königreich",
"Kategorie": „Signaturqualität“,
"Bewertung": "5.0",
"Profil-URL": „https://www.goodfirms.co/company/sigli“
},
{
"Name": „Closeloop-Technologien“,
"Lage": "London, Vereinigtes Königreich",
"Kategorie": „Großartige Ideen zum Leben erwecken“,
"Bewertung": "5.0",
"Profil-URL": „https://www.goodfirms.co/company/closeloop-technologies“
},
{
"Name": "instinkttools",
"Lage": "London, Vereinigtes Königreich",
"Kategorie": „Erstellen maßgeschneiderter Softwarelösungen“,
"Bewertung": "4.9",
"Profil-URL": „https://www.goodfirms.co/company/instinctools“
},
{
"Name": "Salztechnologien",
"Lage": "London, Vereinigtes Königreich",
"Kategorie": „Entwickler nach Wahl“,
"Bewertung": "5.0",
"Profil-URL": „https://www.goodfirms.co/company/salt-technologies“
},
.... mehr
]

Im nächsten Abschnitt behandeln wir das Scraping von Unternehmensprofilseiten im Detail.

Scraping der Firmenprofilseiten von GoodFirms

Durch das Scraping von Firmenprofilseiten von GoodFirms erhalten Sie weitere Informationen über die Dienstleistungen, das Fachwissen, die Stundensätze, die Anzahl der Mitarbeiter und vieles mehr eines Unternehmens. In diesem Abschnitt erklären wir, wie Sie solche Daten extrahieren, speichern und ein vollständiges Codebeispiel schreiben, das Sie implementieren können.

Untersuchen von HTML zum Identifizieren von Selektoren

Der erste Schritt beim Scraping von Unternehmensprofilen besteht darin, die Struktur der Profilseite zu verstehen. Befolgen Sie diese Schritte, um die Seite zu überprüfen:

  1. Öffnen Sie eine Unternehmensprofilseite: Klicken Sie in den Suchergebnissen auf den Firmenlink.
  2. Überprüfen Sie die Seite: Klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie „Untersuchen“ (oder drücken Sie Ctrl + Shift + I).
Screenshot der Überprüfung der HTML-Struktur der Firmenprofilseiten von GoodFirms
  1. Identifizieren Sie die relevanten Daten: Suchen Sie nach den HTML-Elementen, die die Unternehmensinformationen enthalten. Zu den üblichen Datenpunkten gehören:
  • Firmenname: Befindet sich in einem <h1> Tag mit dem Attribut itemprop="name".
  • Beschreibung: Gefunden in einem <div> mit der Klasse profile-summary-text.
  • Stundensatz: Befindet sich in einem <div> mit der Klasse profile-pricing und eine verschachtelte <span> -Tag.
  • Anzahl der Angestellten: Gefunden in einem <div> mit der Klasse profile-employees und eine verschachtelte <span> -Tag.
  • Gründungsjahr: Teil eines <div> mit der Klasse profile-founded und eine verschachtelte <span> -Tag.
  • Dienstleistungen angeboten: Auszug aus <ul> mit der Klasse services-chart-list, Wobei <button> Tags enthalten die data-name Attribut.

Extrahieren wichtiger Details aus GoodFirms-Profilen

So können Sie mit Python mithilfe der Crawlbase die wesentlichen Details aus einer GoodFirms-Unternehmensprofilseite extrahieren Crawling API und BeautifulSoup:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
für bs4 importieren BeautifulSuppe
für Crawlbase importieren CrawlingAPI
importieren re

# Initialisieren Sie die Crawlbase-API mit Ihrem Zugriffstoken
crawling_api = CrawlingAPI({'Zeichen': 'IHR_CRAWLBASE_TOKEN'})

def Crawlbase-Anfrage erstellen(URL):
"""Holen Sie den HTML-Inhalt einer Seite mit Crawlbase."""
Antwort = crawling_api.get(URL)

if Antwort['Kopfzeilen']['pc_status'] == '200':
html_content = Antwort['Körper'].dekodieren('utf-8')
Rückkehr HTML-Inhalt
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def Profildetails extrahieren(HTML-Inhalt):
"""Extrahieren Sie detaillierte Informationen aus einer Unternehmensprofilseite."""
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')

Name = Suppe.Wähle eine('h1[itemprop="name"]').text.strip() if Suppe.Wähle eine('h1[itemprop="name"]') sonst 'N / A'
Beschreibung = re.sub(r'\s+', '', Suppe.Wählen Sie eine(„div.Profil-Zusammenfassungstext“).text.strip()) if Suppe.Wähle eine(„div.Profil-Zusammenfassungstext“) sonst 'N / A'
Stundensatz = Suppe.Wählen Sie eine(„div.profile-pricing > span“).text.strip() if Suppe.Wähle eine(„div.profile-pricing > span“) sonst 'N / A'
Anzahl_der_Mitarbeiter = soup.select_one(„div.profile-employees > span“).text.strip() if Suppe.Wähle eine(„div.profile-employees > span“) sonst 'N / A'
Gründungsjahr = soup.select_one(„div.profile-founded > span“).text.strip() if Suppe.Wähle eine(„div.profile-founded > span“) sonst 'N / A'
Dienstleistungen = [Artikel['Datenname'] für den Artikel in Suppe.Auswählen(„ul.services-chart-list-Schaltfläche“)]

Rückkehr {
'Süßkartoffel': Name,
'Bezeichnung': Beschreibung,
'Stundensatz': Stundensatz,
'Anzahl_der_Mitarbeiter': Anzahl_der_Mitarbeiter,
'Gründungsjahr': Gründungsjahr,
'Dienstleistungen': Dienstleistungen
}

def Firmenprofile abfragen(Profil-URLs):
"""Mehrere Unternehmensprofile scrapen."""
Profile_Daten = []

für den URL in Profil-URLs:
drucken(f"Schabprofil: {URL}")
html_content = make_crawlbase_request(URL)
if HTML-Inhalt:
Details = Profildetails extrahieren (HTML-Inhalt)
profile_data.append(Details)

Rückkehr Profile_Daten

# Beispielverwendung
Profil-URLs = [
„https://www.goodfirms.co/company/unified-infotech“,
„https://www.goodfirms.co/company/sigli“
]

Profile_Daten = Scrape_Firmen_Profile(Profil_URLs)

Speichern von Profildaten in einer JSON-Datei

Die extrahierten Daten können zur einfachen Verarbeitung und zukünftigen Verwendung in einem strukturierten Format wie JSON gespeichert werden.

1
2
3
4
5
6
7
8
9
10
importieren JSON

def Profile in JSON speichern(Daten, Dateiname=„goodfirms_profiles.json“):
"""Firmenprofildaten in einer JSON-Datei speichern."""
mit XNUMXh geöffnet(Dateiname, 'w') as f:
json.dump(Daten, f, Einzug=4)
drucken(f"Profildaten gespeichert in {Dateiname}")

# Beispielverwendung
save_profiles_to_json(Profildaten)

Vollständiges Codebeispiel

Hier ist die vollständige Implementierung, einschließlich Abrufen, Extrahieren und Speichern von Profildaten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
für bs4 importieren BeautifulSuppe
importieren JSON
für Crawlbase importieren CrawlingAPI
importieren re

# Initialisieren Sie die Crawlbase-API mit Ihrem Zugriffstoken
crawling_api = CrawlingAPI({'Zeichen': 'IHR_CRAWLBASE_TOKEN'})

def Crawlbase-Anfrage erstellen(URL):
"""Holen Sie den HTML-Inhalt einer Seite mit Crawlbase."""
Antwort = crawling_api.get(URL)

if Antwort['Kopfzeilen']['pc_status'] == '200':
html_content = Antwort['Körper'].dekodieren('utf-8')
Rückkehr HTML-Inhalt
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def Profildetails extrahieren(HTML-Inhalt):
"""Extrahieren Sie detaillierte Informationen aus einer Unternehmensprofilseite."""
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')

Name = Suppe.Wähle eine('h1[itemprop="name"]').text.strip() if Suppe.Wähle eine('h1[itemprop="name"]') sonst 'N / A'
Beschreibung = re.sub(r'\s+', '', Suppe.Wählen Sie eine(„div.Profil-Zusammenfassungstext“).text.strip()) if Suppe.Wähle eine(„div.Profil-Zusammenfassungstext“) sonst 'N / A'
Stundensatz = Suppe.Wählen Sie eine(„div.profile-pricing > span“).text.strip() if Suppe.Wähle eine(„div.profile-pricing > span“) sonst 'N / A'
Anzahl_der_Mitarbeiter = soup.select_one(„div.profile-employees > span“).text.strip() if Suppe.Wähle eine(„div.profile-employees > span“) sonst 'N / A'
Gründungsjahr = soup.select_one(„div.profile-founded > span“).text.strip() if Suppe.Wähle eine(„div.profile-founded > span“) sonst 'N / A'
Dienstleistungen = [Artikel['Datenname'] für den Artikel in Suppe.Auswählen(„ul.services-chart-list-Schaltfläche“)]

Rückkehr {
'Süßkartoffel': Name,
'Bezeichnung': Beschreibung,
'Stundensatz': Stundensatz,
'Anzahl_der_Mitarbeiter': Anzahl_der_Mitarbeiter,
'Gründungsjahr': Gründungsjahr,
'Dienstleistungen': Dienstleistungen
}

def Firmenprofile abfragen(Profil-URLs):
"""Mehrere Unternehmensprofile scrapen."""
Profile_Daten = []

für den URL in Profil-URLs:
drucken(f"Schabprofil: {URL}")
html_content = make_crawlbase_request(URL)
if HTML-Inhalt:
Details = Profildetails extrahieren (HTML-Inhalt)
profile_data.append(Details)

Rückkehr Profile_Daten

def Profile in JSON speichern(Daten, Dateiname=„goodfirms_profiles.json“):
"""Firmenprofildaten in einer JSON-Datei speichern."""
mit XNUMXh geöffnet(Dateiname, 'w') as f:
json.dump(Daten, f, Einzug=4)
drucken(f"Profildaten gespeichert in {Dateiname}")

# Beispielverwendung
Profil-URLs = [
„https://www.goodfirms.co/company/unified-infotech“,
„https://www.goodfirms.co/company/sigli“
]

Profile_Daten = Scrape_Firmen_Profile(Profil_URLs)
save_profiles_to_json(Profildaten)

Beispielausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[
{
"Name": „Einheitliche Infotechnologie“,
„Beschreibung“: „Unified Infotech ist ein seit 14 Jahren bestehender, mehrfach preisgekrönter Partner für digitale Transformation. Wir haben uns zum Ziel gesetzt, das Unternehmenswachstum mithilfe neuer Technologien und optimierter digitaler Prozesse anzukurbeln. Wir betreuen Fortune 2019-Unternehmen, multinationale Konzerne (MNCs), kleine und mittlere Unternehmen (KMU) und Startups und sind ihre umfassenden Technologiepartner für maßgeschneiderte Web-, Mobil- und individuelle Softwarelösungen. Unsere Organisation ist stolz auf ihren beratungsorientierten Ansatz und definiert sich selbst als \"vertrauenswürdiger Partner für digitale Transformation\". Wir verkörpern die Werte Einheit, Selbstbewusstsein, Zuverlässigkeit und Transformation. Einheitlich in Vision und Umsetzung haben wir uns auf hochmoderne Softwarelösungen spezialisiert, die eine nahtlose Integration und Erfolg im digitalen Zeitalter ermöglichen. Unser Selbstbewusstsein treibt jedes Projekt an und sorgt für robuste und innovative Ergebnisse. Zuverlässigkeit steht im Mittelpunkt unserer digitalen Transformationsdienste und bietet End-to-End-Lösungen, die Widerstandsfähigkeit und Wachstum fördern. Mit einem transformativen Ethos revolutionieren wir Branchen und ermöglichen Unternehmen, beispielloses Wachstum und Innovation zu erzielen. Wir sind Ihr Partner für: Digitale Transformation, kundenspezifische Entwicklung von Web-, Mobil- und Desktop-Software Digitale Kundenerfahrung – UX/UI-Forschung und -Design SaaS- und Softwareproduktentwicklung IT-Beratung und Personalaufstockung Softwaremodernisierung und Cloud-Migration Daten und Analysen Cloud-Engineering Wir bedienen die folgenden Branchen: SaaS und digitale Plattformen Bildung und Veröffentlichung Pharma, Gesundheitswesen und Biowissenschaften Fintech, Banken, Finanzdienstleistungen Versicherung Einzelhandel, E-Commerce Lieferkette Sprache und Übersetzung Bau und Immobilien Automobil Medien und Unterhaltung Reisen und Gastgewerbe Warum Unified Infotech wählen? Wir sind ein mehrfach preisgekröntes, globales Unternehmen für digitale Transformation. Wir helfen Unternehmen, ihre Geschäftsergebnisse mit maßgeschneiderter digitaler Erfahrung, Softwareentwicklung, Cloud-Engineering, Datenanalyse, IT-Beratung und Beratungsdiensten drastisch zu verbessern. Deloitte Technology Fast 500 BBB-Akkreditierung und A+-Bewertung (2019) 2019 Bewertungen bei GoodFirms 50 Bewertungen bei Clutch Certified Great Place to Work",
"Stundensatz": „50–99 $/Std.“,
"Anzahl_der_Mitarbeiter": "50 - 249",
"Gründungsjahr": "2010",
"Dienstleistungen": [
"Web-Entwicklung",
"Software-Entwicklung",
„Webdesign (UI/UX)“,
„Mobile App-Entwicklung“,
"E-Commerce-Entwicklung"
]
},
{
"Name": "Sigli",
„Beschreibung“: „Sigli ist ein dynamisches Softwareentwicklungsunternehmen, das sich auf die Entwicklung digitaler Produkte und die digitale Transformation spezialisiert hat. Wir sind herausragend darin, innovative Ideen in die Realität umzusetzen und End-to-End-Lösungen bereitzustellen, die den gesamten Entwicklungszyklus vom Konzept bis zur Bereitstellung abdecken. Unser starker Fokus auf die Bereitstellung hochwertiger, skalierbarer und zukunftssicherer digitaler Produkte ermöglicht es uns, die Komplexität der digitalen Transformation effektiv zu meistern. Zusätzlich zu unseren Kernentwicklungsdienstleistungen legen wir großen Wert auf KI- und Datenlösungen und helfen Unternehmen, fortschrittliche Analysen und intelligente Systeme zu nutzen, um Innovation und Effizienz voranzutreiben. Indem wir Abläufe modernisieren und das Kundenerlebnis verbessern, stellen wir sicher, dass unsere Kunden in der sich ständig weiterentwickelnden digitalen Landschaft wettbewerbsfähig bleiben. Die Expertise unseres Teams, kombiniert mit dem Engagement für die Nutzung der neuesten Technologien und Best Practices, positioniert Sigli als zuverlässigen Partner für Unternehmen, die im digitalen Zeitalter erfolgreich sein wollen. Wir sind stolz darauf, nach ISO/IEC 27001 zertifiziert zu sein und sicherzustellen, dass die Daten und Abläufe unserer Kunden sicher und konform sind. Wir bei Sigli glauben, dass ein erfolgreiches Projekt eine harmonische Mischung aus Spitzentechnologie, einem professionellen und anpassungsfähigen Team, gegenseitigem Respekt und sorgfältiger Planung erfordert. Unser kundenorientierter Ansatz wird durch Transparenz, Eigenverantwortung und ein unermüdliches Engagement für den Service untermauert. Wir kommunizieren offen, übernehmen Verantwortung für unsere Arbeit und legen stets Wert auf die Kundenzufriedenheit.“,
"Stundensatz": „50–99 $/Std.“,
"Anzahl_der_Mitarbeiter": "50 - 249",
"Gründungsjahr": "2015",
"Dienstleistungen": [
"Software-Entwicklung",
"Web-Entwicklung",
„Big Data und BI“,
"Künstliche Intelligenz",
„Mobile App-Entwicklung“,
"Testdienstleistungen",
„DevOps“
]
}
]

Abschließende Überlegungen

Das Scraping von GoodFirms-Daten kann Ihnen Einblicke in Unternehmen, Dienstleistungen und Branchentrends geben. Verwenden Sie Crawlbase Crawling API und Python, um Suchlisten und Firmenprofile zu sammeln und zu organisieren. Diese Daten können für Marktforschung, Wettbewerbsanalyse oder datengesteuerte Lösungen verwendet werden.

Beachten Sie jedoch immer ethische Web Scraping-Praktiken, indem Sie die Servicebedingungen von GoodFirm lesen und die Daten mit Bedacht verwenden. Mit dem richtigen Ansatz und den richtigen Tools können Sie GoodFirms in eine Fundgrube für Geschäftseinblicke verwandeln.

Hier sind einige weitere Anleitungen, die Sie interessieren könnten:

So scrapen Sie Super Pages
Wie man Gelbe Seiten durchsucht
So extrahieren Sie Immobiliendaten von Zillow
So scrapen Sie Fragen über Stackoverflow

Wenn Sie Fragen haben oder Feedback geben möchten, unsere Support-Team kann Ihnen beim Web Scraping helfen. Viel Spaß beim Scraping!

Häufig gestellte Fragen (FAQs)

F: Welche ethischen Aspekte sind beim Scraping von GoodFirms zu beachten?

Scraping ist ein leistungsstarkes Tool, aber halten Sie sich immer an die Servicebedingungen und ethischen Richtlinien von GoodFirm. Stellen Sie keine übermäßigen Anfragen, die die Server überlasten können, respektieren Sie die robots.txt-Datei und verwenden Sie die Daten, ohne gegen geistige Eigentumsrechte zu verstoßen.

F: Wie gehe ich mit potenziellen Herausforderungen wie Captchas oder Sperren beim Scraping von GoodFirms um?

GoodFirms ist eine statische Website, daher sind Captchas oder Blockaden selten. Um jedoch ein reibungsloses Scraping zu gewährleisten, können Sie Folgendes verwenden: Crawlbase Crawling API für Funktionen wie IP-Rotation und Anforderungswiederholungen, die die Ratenbegrenzung umgehen und einen konsistenten Zugriff aufrechterhalten können.

F: Welche Erkenntnisse können Unternehmen durch das Scraping von GoodFirms gewinnen?

Unternehmensprofile, angebotene Dienstleistungen, Kundenbewertungen, Stundensätze, Mitarbeiterzahl, Gründungsjahr. Nutzen Sie diese Daten, um Wettbewerber zu vergleichen, Branchentrends zu erkennen und eine gezielte Öffentlichkeitsarbeit aufzubauen.