GoodFirms est une plateforme B2B qui met en relation les entreprises avec les fournisseurs de services informatiques et les éditeurs de logiciels. Avec des milliers de profils d'entreprises vérifiés, d'avis d'utilisateurs et de détails, GoodFirms est un guichet unique pour les décideurs, les chercheurs et les spécialistes du marketing pour rechercher les tendances du secteur, trouver des concurrents, ou trouver des partenaires.

En 2023, GoodFirms comptait plus de 60,000 XNUMX profils d'entreprises et des listes détaillées dans diverses catégories telles que le développement de logiciels, le marketing numérique, le développement d'applications mobiles, etc. La plateforme est connue pour sa puissante fonctionnalité de recherche et son système d'évaluation transparent, c'est pourquoi les entreprises du monde entier l'utilisent.

Dans ce blog, nous vous expliquerons comment extraire des données du site Web GoodFirms à l'aide de Python et de Base d'exploration Crawling API. Commençons!

Table des matières

  1. Pourquoi récupérer les données de GoodFirms ?
  2. Données clés à extraire de GoodFirms
  3. Base d'exploration Crawling API pour le scraping GoodFirms
  4. Préparation au scraping de GoodFirms
  • Outils et bibliothèques nécessaires
  • Configuration de votre environnement Python
  1. Suppression des résultats de recherche de GoodFirms
  • Inspection du code HTML pour identifier les sélecteurs
  • Rédaction du scraper de listes de recherche GoodFirms
  • Gestion de la pagination
  • Stockage des données récupérées dans un fichier JSON
  • Exemple de code complet
  1. Suppression des pages de profil d'entreprise GoodFirms
  • Inspection du code HTML pour identifier les sélecteurs
  • Extraction des détails clés des profils GoodFirms
  • Stockage des données de profil dans un fichier JSON
  • Exemple de code complet
  1. Réflexions finales
  2. Foire Aux Questions (FAQ)

Pourquoi récupérer les données de GoodFirms ?

L'extraction des données de GoodFirms peut aider les entreprises, les chercheurs et les développeurs. En tant que plateforme de confiance avec des milliers de profils d'entreprises et des évaluations détaillées, GoodFirms dispose de données qui peuvent être utilisées de nombreuses manières :

  • Analyse de la concurrence:Obtenez un aperçu des services, des prix et des avis des clients de vos concurrents.
  • Génération de prospects:Extraire les détails de l'entreprise tels que les coordonnées, les services et les secteurs desservis.
  • Market Research:Analysez les tendances du secteur en examinant les entreprises et les services les plus performants.
  • Création de bases de données:Créer un référentiel structuré de fournisseurs de services informatiques pour des applications telles que les moteurs de recommandation ou les CRM.
  • Gain de talent:Obtenez la taille de l’équipe de l’entreprise, les secteurs desservis et l’expertise opérationnelle pour trouver des opportunités de collaboration ou d’embauche.
  • Analyse comparative de portefeuille:Découvrez ce qui fait le succès des projets dans les portefeuilles d’entreprises et les études de cas.
  • Suivi des tendances:Étudiez les préférences des clients et les modèles de demande à partir d’avis détaillés et des services offerts.
  • Expansion commerciale:Trouvez des marchés ou des régions potentiels à cibler en analysant les emplacements des entreprises et les services régionaux.

Grâce au vaste ensemble de données de GoodFirm, vous disposez d'un véritable trésor de données pour prendre des décisions fondées sur les données. En automatisant le processus d'extraction, vous gagnez du temps et avez accès à des informations complètes et à jour.

Données clés à extraire de GoodFirms

Lorsque vous récupérez GoodFirms, vous devez extraire des données qui donnent des informations sur les entreprises et leurs services. L'image ci-dessous montre les principaux points de données à extraire :

Image montrant les points de données clés à extraire du site Web de Goodfirms

Base d'exploration Crawling API pour le scraping GoodFirms

Base d'exploration Crawling API est idéal pour extraire des sites Web statiques comme GoodFirms. Il prend en charge les proxys, les en-têtes HTTP et garantit une grande précision des données. Avec Crawlbase, vous pouvez extraire des données des listes de recherche GoodFirms et des pages de profil d'entreprise sans vous soucier des blocages IP ou des défis CAPTCHA.

Tout d'abord, installez la bibliothèque Python Crawlbase. Utilisez la commande suivante :

1
pip installe crawlbase

Une fois installé, vous aurez besoin d'un jeton API. Vous pouvez obtenir votre jeton en vous inscrivant sur le site Web de Crawlbase. Ce jeton authentifiera vos demandes.

Voici comment initialiser Crawlbase Crawling API en Python:

1
2
3
4
5
6
7
8
9
10
11
de base d'exploration importer API d'exploration

# Initialiser la base de données Crawling API
crawling_api = API d'exploration({'jeton': 'VOTRE_JETON_CRAWLBASE'})

# Testez votre configuration
réponse = crawling_api.get("https://www.goodfirms.co/companies")
if réponse['en-têtes']['pc_status']== «200 ':
impression(« Installation réussie ! Vous êtes prêt à récupérer GoodFirms. »)
d'autre:
impression(f"Échec de la connexion. Code d'état : {réponse['en-têtes']['pc_status']}")

Attention : Crawlbase fournit deux types de jetons. Un jeton normal pour les sites statiques et un jeton JS pour les sites rendus en JS. Pour GoodFirms, le jeton normal fonctionnera bien. Crawlbase offre 1,000 XNUMX requêtes gratuites pour ses Crawling API. Vérifier la Documentation pour plus d'information.

Avec Crawlbase, vous pouvez extraire des données sans vous soucier des obstacles techniques tels que les adresses IP bloquées ou les en-têtes complexes. Dans la section suivante, nous allons voir comment configurer l'environnement Python pour extraire les données.

Préparation au scraping de GoodFirms

Avant de commencer à scraper GoodFirms, vous devez configurer les bons outils et bibliothèques. Cette section vous guidera tout au long du processus d'installation des bibliothèques requises et de configuration de votre environnement Python pour le scraping.

Outils et bibliothèques nécessaires

Pour récupérer GoodFirms, vous aurez besoin de :

  1. Python:En raison de sa facilité d’utilisation et de ses bibliothèques robustes, Python est l’un des meilleurs langages pour le scraping Web.
  2. Bibliothèque Python Crawlbase:Cela facilitera votre Crawlbase Crawling API appels.
  3. BeautifulSoup:Une bibliothèque Python pour analyser le HTML et en extraire des données.

Installation de Python et bibliothèques requises

Si vous n'avez pas installé Python, téléchargez-le ici : python.org. Une fois installées, vous pouvez utiliser pip pour installer les bibliothèques. Exécutez les commandes suivantes dans votre terminal :

1
2
pip installe crawlbase
pip installer beautifulsoup4

Ces bibliothèques vous permettront d'interagir avec Crawlbase Crawling API, analyser le contenu HTML de GoodFirms et gérer les demandes efficacement.

Comment choisir le bon IDE pour le scraping Web

Pour écrire votre script de scraping, vous pouvez utiliser n'importe quel environnement de développement intégré (IDE) ou éditeur de texte. Vous pouvez choisir parmi certains des plus populaires, comme Code VS, PyCharm et Carnets de Jupyter.

Suppression des résultats de recherche de GoodFirms

Nous allons voir ici comment extraire les listes de recherche de GoodFirms. Cela comprend l'inspection du code HTML, l'écriture du scraper, la gestion de la pagination et le stockage des données extraites dans un fichier JSON.

Inspection du code HTML pour identifier les sélecteurs

Avant de commencer le scraping, nous devons inspecter la structure HTML de la page de listes de recherche GoodFirms pour obtenir les sélecteurs CSS que nous utiliserons pour extraire les données. Suivez ces étapes :

  1. Ouvrir une page de recherche GoodFirms:Accédez aux résultats de recherche d'une catégorie sur GoodFirms.
  2. Inspecter la page: Faites un clic droit sur la page et sélectionnez « Inspecter » (ou appuyez sur Ctrl + Shift + I).
Capture d'écran inspectant la structure HTML des listes de recherche GoodFirms
  1. Identifier les données pertinentes:Recherchez les éléments HTML qui contiennent les informations sur l'entreprise. Les points de données courants incluent :
  • Nom de l'entreprise :On le trouve généralement dans un <h3> tag avec la classe firm-name.
  • Emplacement:Souvent dans un <div> élément avec la classe firm-location.
  • Catégorie de service:Habituellement dans un <div> élément imbriqué dans firm-content et sous le slogan de la classe.
  • Note:Affiché dans un <span> tag avec la classe rating-number.
  • URL du profil de l'entreprise:Trouvé dans un <a> tag avec la classe visit-profile.

Une fois que vous avez identifié les sélecteurs CSS pertinents, nous pouvons procéder à l'écriture du scraper.

Rédaction du scraper de listes de recherche GoodFirms

Écrivons maintenant le scraper pour extraire les données de l'entreprise de la page des listes de recherche.

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
de bs4 importer BeautifulSoup
importer json
de base d'exploration importer API d'exploration

# Initialisez l'API Crawlbase avec votre jeton d'accès
crawling_api = API d'exploration({'jeton': 'VOTRE_JETON_CRAWLBASE'})

def créer_une_requête_crawlbase(url):
réponse = crawling_api.get(url)

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
retourner contenu_html
d'autre:
impression(f"Échec de la récupération de la page. Code d'état de Crawlbase : {réponse['en-têtes']['pc_status']}")
retourner Aucun

def extraire_les_détails_de_l'entreprise(Société):
nom = société.select_one('h3.nom-de-l'entreprise').texte.strip() if société.select_one('h3.nom-de-l'entreprise') d'autre ''
emplacement = société.select_one('div.firm-location').texte.strip() if société.select_one('div.firm-location') d'autre ''
catégorie = société.select_one('div.firm-content > div.slogan').texte.strip() if société.select_one('div.firm-content > div.slogan') d'autre ''
note = société.select_one('span.rating-number').texte.strip() if société.select_one('span.rating-number') d'autre « Pas de notation »
lien = société.select_one('div.firm-urls > a.visit-profile')['href'] if société.select_one('div.firm-urls > a.visit-profile') d'autre ''

retourner {
'nom': nom,
'emplacement': emplacement,
«catégorie»: catégorie,
'notation': notation,
'profil_url': lien
}

def scrape_goodfirms_search_listings(url):
html_content = make_crawlbase_request(url)
if pas contenu_html :
retourner []

soupe = BeautifulSoup(contenu_html, 'html.parser')
entreprises = soup.select(« ul.firm-directory-list > li.firm-wrapper »)
données_société = []

pour Société in entreprises:
détails = extract_company_details(entreprise)
company_data.append(détails)

retourner données_de_l'entreprise

# Exemple d'utilisation
URL = "https://www.goodfirms.co/companies/web-development-agency/london"
données = scrape_goodfirms_search_listings(url)

Gestion de la pagination

GoodFirms utilise un page paramètre dans l'URL pour naviguer dans les listes de recherche. Pour extraire toutes les pages, nous devons gérer la pagination en ajustant le page paramètre.

Voici comment nous pouvons modifier le scraper pour gérer la pagination :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def gratter_toutes_les_pages(base_url, num_pages=5):
« « Supprimez plusieurs pages des listes de recherche GoodFirms. » »
toutes_données = []

pour page in gamme(1, nombre_pages + 1):
URL = f"{base_url}?page={page}"
impression(f"Scraping de la page {page}... ")
données = scrape_goodfirms_search_listings(url)
all_data.extend(données)

retourner toutes_les_données

# Exemple d'utilisation : récupérer 5 pages
base_url = "https://www.goodfirms.co/companies/web-development-agency/london"
toutes_données = scrape_all_pages(base_url, num_pages=5)

Stockage des données récupérées dans un fichier JSON

Après avoir extrait les données, il est essentiel de les stocker dans un format facile à utiliser. Dans ce cas, nous enregistrerons les données dans un fichier JSON pour une utilisation ou une analyse ultérieure.

1
2
3
4
5
6
7
8
def enregistrer_les_données_dans_json(données, nom de fichier='données_de_recherche_de_bonnes_entreprises.json'):
« Enregistrez les données extraites dans un fichier JSON. »
avec ouvert(nom de fichier, 'w') as f:
json.dump(données, f, indent=4)
impression(f"Données enregistrées dans {nom de fichier}")

# Exemple d'utilisation
save_data_to_json(toutes_les_données)

Le save_data_to_json La fonction stockera les données sous forme de fichier JSON, ce qui facilitera leur chargement dans une base de données ou leur traitement ultérieur.

Exemple de code complet

Voici le scraper de données complet qui combine tout, depuis les requêtes jusqu'à la gestion de la pagination et le stockage des données dans un fichier JSON :

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
de bs4 importer BeautifulSoup
importer json
de base d'exploration importer API d'exploration

# Initialisez l'API Crawlbase avec votre jeton d'accès
crawling_api = API d'exploration({'jeton': 'VOTRE_JETON_CRAWLBASE'})

def créer_une_requête_crawlbase(url):
réponse = crawling_api.get(url)

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
retourner contenu_html
d'autre:
impression(f"Échec de la récupération de la page. Code d'état de Crawlbase : {réponse['en-têtes']['pc_status']}")
retourner Aucun

def extraire_les_détails_de_l'entreprise(Société):
nom = société.select_one('h3.nom-de-l'entreprise').texte.strip() if société.select_one('h3.nom-de-l'entreprise') d'autre ''
emplacement = société.select_one('div.firm-location').texte.strip() if société.select_one('div.firm-location') d'autre ''
catégorie = société.select_one('div.firm-content > div.slogan').texte.strip() if société.select_one('div.firm-content > div.slogan') d'autre ''
note = société.select_one('span.rating-number').texte.strip() if société.select_one('span.rating-number') d'autre « Pas de notation »
lien = société.select_one('div.firm-urls > a.visit-profile')['href'] if société.select_one('div.firm-urls > a.visit-profile') d'autre ''

retourner {
'nom': nom,
'emplacement': emplacement,
«catégorie»: catégorie,
'notation': notation,
'profil_url': lien
}

def scrape_goodfirms_search_listings(url):
html_content = make_crawlbase_request(url)
if pas contenu_html :
retourner []

soupe = BeautifulSoup(contenu_html, 'html.parser')
entreprises = soup.select(« ul.firm-directory-list > li.firm-wrapper »)
données_société = []

pour Société in entreprises:
détails = extract_company_details(entreprise)
company_data.append(détails)

retourner données_de_l'entreprise

def gratter_toutes_les_pages(base_url, num_pages=5):
toutes_données = []

pour page in gamme(1, nombre_pages + 1):
URL = f"{base_url}?page={page}"
impression(f"Scraping de la page {page}... ")
données = scrape_goodfirms_search_listings(url)
all_data.extend(données)

retourner toutes_les_données

def enregistrer_les_données_dans_json(données, nom de fichier='données_de_recherche_de_bonnes_entreprises.json'):
avec ouvert(nom de fichier, 'w') as f:
json.dump(données, f, indent=4)
impression(f"Données enregistrées dans {nom de fichier}")

# Exemple d'utilisation
base_url = "https://www.goodfirms.co/companies/web-development-agency/london"
toutes_données = scrape_all_pages(base_url, num_pages=5)
save_data_to_json(toutes_les_données)

Exemple de sortie :

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
[
{
"prénom": « Infotech unifiée »,
"emplacement": « Londres, Royaume-Uni »,
"catégorie": « Piloter la transformation numérique grâce à la technologie de pointe »,
"notation": "5.0",
"profil_url": "https://www.goodfirms.co/company/unified-infotech"
},
{
"prénom": "Sigli",
"emplacement": « Londres, Royaume-Uni »,
"catégorie": « Qualité de signature »,
"notation": "5.0",
"profil_url": "https://www.goodfirms.co/company/sigli"
},
{
"prénom": « Technologies Closeloop »,
"emplacement": « Londres, Royaume-Uni »,
"catégorie": « Donner vie à des idées géniales »,
"notation": "5.0",
"profil_url": "https://www.goodfirms.co/company/closeloop-technologies"
},
{
"prénom": « outils instinctifs »,
"emplacement": « Londres, Royaume-Uni »,
"catégorie": « Créer des solutions logicielles personnalisées »,
"notation": "4.9",
"profil_url": "https://www.goodfirms.co/company/instinctools"
},
{
"prénom": « Technologies du sel »,
"emplacement": « Londres, Royaume-Uni »,
"catégorie": « Développeurs par choix »,
"notation": "5.0",
"profil_url": "https://www.goodfirms.co/company/salt-technologies"
},
.... plus
]

Dans la section suivante, nous aborderons en détail le scraping des pages de profil d'entreprise.

Suppression des pages de profil d'entreprise GoodFirms

L'extraction des pages de profil d'entreprise de GoodFirms vous donne plus d'informations sur les services, l'expertise, les taux horaires, le nombre d'employés d'une entreprise, etc. Dans cette section, nous allons expliquer comment extraire ces données, les stocker et rédiger un exemple de code complet que vous pourrez mettre en œuvre.

Inspection du code HTML pour identifier les sélecteurs

La première étape pour extraire les profils d'entreprise consiste à comprendre la structure de la page de profil. Suivez ces étapes pour inspecter la page :

  1. Ouvrir une page de profil d'entreprise:Cliquez sur le lien de l'entreprise dans les résultats de la recherche.
  2. Inspecter la page: Faites un clic droit sur la page et sélectionnez « Inspecter » (ou appuyez sur Ctrl + Shift + I).
Capture d'écran inspectant la structure HTML des pages de profil d'entreprise GoodFirms
  1. Identifier les données pertinentes:Recherchez les éléments HTML qui contiennent les informations sur l'entreprise. Les points de données courants incluent :
  • Nom de l'entreprise :Situé dans un <h1> balise avec l'attribut itemprop="name".
  • Description:Trouvé dans un <div> avec la classe profile-summary-text.
  • Taux horaire:Situé dans un <div> avec la classe profile-pricing et un imbriqué <span> Étiquette.
  • Nombre d'employés:Trouvé dans un <div> avec la classe profile-employees et un imbriqué <span> Étiquette.
  • Année de fondation:Une partie d'un <div> avec la classe profile-founded et un imbriqué <span> Étiquette.
  • Services proposés:Extrait de <ul> avec la classe services-chart-list, Où <button> les balises contiennent le data-name attribuer.

Extraction des détails clés des profils GoodFirms

Voici comment vous pouvez extraire les détails essentiels d'une page de profil d'entreprise GoodFirms avec Python à l'aide de Crawlbase Crawling API et 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
de bs4 importer BeautifulSoup
de base d'exploration importer API d'exploration
importer re

# Initialisez l'API Crawlbase avec votre jeton d'accès
crawling_api = API d'exploration({'jeton': 'VOTRE_JETON_CRAWLBASE'})

def créer_une_requête_crawlbase(url):
"""Récupérer le contenu HTML d'une page à l'aide de Crawlbase."""
réponse = crawling_api.get(url)

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
retourner contenu_html
d'autre:
impression(f"Échec de la récupération de la page. Code d'état de Crawlbase : {réponse['en-têtes']['pc_status']}")
retourner Aucun

def extraire_les_détails_du_profil(contenu_html):
« Extraire des informations détaillées à partir d'une page de profil d'entreprise. »
soupe = BeautifulSoup(contenu_html, 'html.parser')

nom = soup.select_one('h1[itemprop="nom"]').texte.strip() if soupe.select_one('h1[itemprop="nom"]') d'autre 'N / A'
description = re.sub(r'\s+', '', soupe.select_one('div.profile-summary-texte').texte.strip()) if soupe.select_one('div.profile-summary-texte') d'autre 'N / A'
tarif_horaire = soup.select_one('div.profile-pricing > span').texte.strip() if soupe.select_one('div.profile-pricing > span') d'autre 'N / A'
no_of_employees = soup.select_one('div.profile-employees > span').texte.strip() if soupe.select_one('div.profile-employees > span') d'autre 'N / A'
année_fondée = soup.select_one('div.profile-founded > span').texte.strip() if soupe.select_one('div.profile-founded > span') d'autre 'N / A'
services = [élément['nom-de-données'] pour Articles in soupe.select(Bouton « ul.services-chart-list »)]

retourner {
'nom': nom,
'la description': description,
'taux_horaire': taux_horaire,
'nombre_d'employés': nombre_d'employés,
'année_de_fondation': année_de_fondation,
'services': services
}

def gratter_les_profils_de_l'entreprise(URL du profil):
« Supprimez plusieurs profils d'entreprise. »
profils_data = []

pour url in profil_urls:
impression(f"Profil de grattage : {URL}")
html_content = make_crawlbase_request(url)
if contenu_html :
détails = extract_profile_details(html_content)
profils_data.append(détails)

retourner données_de_profils

# Exemple d'utilisation
profil_urls = [
"https://www.goodfirms.co/company/unified-infotech",
"https://www.goodfirms.co/company/sigli"
]

profils_data = scrape_company_profiles(profile_urls)

Stockage des données de profil dans un fichier JSON

Les données extraites peuvent être stockées dans un format structuré, tel que JSON, pour un traitement facile et une utilisation future.

1
2
3
4
5
6
7
8
9
10
importer json

def enregistrer_les_profils_dans_json(données, nom de fichier='goodfirms_profiles.json'):
« Enregistrer les données du profil de l'entreprise dans un fichier JSON. »
avec ouvert(nom de fichier, 'w') as f:
json.dump(données, f, indent=4)
impression(f"Données de profil enregistrées dans {nom de fichier}")

# Exemple d'utilisation
save_profiles_to_json(données_de_profils)

Exemple de code complet

Voici l'implémentation complète, y compris la récupération, l'extraction et le stockage des données de profil :

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
de bs4 importer BeautifulSoup
importer json
de base d'exploration importer API d'exploration
importer re

# Initialisez l'API Crawlbase avec votre jeton d'accès
crawling_api = API d'exploration({'jeton': 'VOTRE_JETON_CRAWLBASE'})

def créer_une_requête_crawlbase(url):
"""Récupérer le contenu HTML d'une page à l'aide de Crawlbase."""
réponse = crawling_api.get(url)

if réponse['en-têtes']['pc_status']== «200 ':
html_content = réponse['corps'].décoder(« utf-8 »)
retourner contenu_html
d'autre:
impression(f"Échec de la récupération de la page. Code d'état de Crawlbase : {réponse['en-têtes']['pc_status']}")
retourner Aucun

def extraire_les_détails_du_profil(contenu_html):
« Extraire des informations détaillées à partir d'une page de profil d'entreprise. »
soupe = BeautifulSoup(contenu_html, 'html.parser')

nom = soup.select_one('h1[itemprop="nom"]').texte.strip() if soupe.select_one('h1[itemprop="nom"]') d'autre 'N / A'
description = re.sub(r'\s+', '', soupe.select_one('div.profile-summary-texte').texte.strip()) if soupe.select_one('div.profile-summary-texte') d'autre 'N / A'
tarif_horaire = soup.select_one('div.profile-pricing > span').texte.strip() if soupe.select_one('div.profile-pricing > span') d'autre 'N / A'
no_of_employees = soup.select_one('div.profile-employees > span').texte.strip() if soupe.select_one('div.profile-employees > span') d'autre 'N / A'
année_fondée = soup.select_one('div.profile-founded > span').texte.strip() if soupe.select_one('div.profile-founded > span') d'autre 'N / A'
services = [élément['nom-de-données'] pour Articles in soupe.select(Bouton « ul.services-chart-list »)]

retourner {
'nom': nom,
'la description': description,
'taux_horaire': taux_horaire,
'nombre_d'employés': nombre_d'employés,
'année_de_fondation': année_de_fondation,
'services': services
}

def gratter_les_profils_de_l'entreprise(URL du profil):
« Supprimez plusieurs profils d'entreprise. »
profils_data = []

pour url in profil_urls:
impression(f"Profil de grattage : {URL}")
html_content = make_crawlbase_request(url)
if contenu_html :
détails = extract_profile_details(html_content)
profils_data.append(détails)

retourner données_de_profils

def enregistrer_les_profils_dans_json(données, nom de fichier='goodfirms_profiles.json'):
« Enregistrer les données du profil de l'entreprise dans un fichier JSON. »
avec ouvert(nom de fichier, 'w') as f:
json.dump(données, f, indent=4)
impression(f"Données de profil enregistrées dans {nom de fichier}")

# Exemple d'utilisation
profil_urls = [
"https://www.goodfirms.co/company/unified-infotech",
"https://www.goodfirms.co/company/sigli"
]

profils_data = scrape_company_profiles(profile_urls)
save_profiles_to_json(données_de_profils)

Exemple de sortie :

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
[
{
"prénom": « Infotech unifiée »,
"la description": "Unified Infotech est un partenaire de transformation numérique primé à plusieurs reprises et âgé de 14 ans. Nous nous engageons à dynamiser la croissance des entreprises avec des technologies émergentes et des processus numériques rationalisés. Nous servons les entreprises du Fortune 2019, les multinationales (MNC), les petites et moyennes entreprises (PME) et les startups, en leur servant d'alliés technologiques complets pour des solutions Web, mobiles et logicielles personnalisées. Notre organisation est fière de son approche axée sur le conseil, se définissant comme un « partenaire de confiance en matière de transformation numérique ». Nous incarnons les valeurs d'unification, de confiance, de fiabilité et de transformation. Unifiés dans la vision et l'exécution, nous nous spécialisons dans les solutions logicielles de pointe qui favorisent une intégration transparente et le succès à l'ère numérique. Notre confiance alimente chaque projet, garantissant des résultats solides et innovants. La fiabilité est au cœur de nos services de transformation numérique, offrant des solutions de bout en bout qui favorisent la résilience et la croissance. Avec une éthique transformatrice, nous révolutionnons les industries, permettant aux entreprises d'atteindre une croissance et une innovation sans précédent. Nous sommes votre partenaire de référence pour : Transformation numérique, développement de logiciels Web, mobiles et de bureau personnalisés Expérience client numérique - Recherche et conception UX/UI Développement de produits SaaS et logiciels Conseil informatique et augmentation du personnel Modernisation des logiciels et migration vers le cloud Données et analyses Ingénierie cloud Nous servons les secteurs suivants : SaaS et plateformes numériques Éducation et publication Pharmacie, santé et sciences de la vie Fintech, banque, services financiers Assurances Vente au détail, commerce électronique Chaîne d'approvisionnement Discours et traduction Construction et immobilier Automobile Médias et divertissement Voyages et hôtellerie Pourquoi choisir Unified Infotech ? Nous sommes une entreprise mondiale de transformation numérique maintes fois primée. Nous aidons les entreprises à améliorer considérablement leurs résultats commerciaux grâce à des services sur mesure d'expérience numérique, de développement de logiciels, d'ingénierie cloud, d'analyse de données, de conseil et de conseil en informatique. Accréditation BBB Deloitte Technology Fast 500 et notation A+ (2019) 2019 note sur GoodFirms 50 note sur Clutch Certified Great Place to Work",
"taux_horaire": « 50 $ - 99 $/heure »,
"nombre_d'employés": "50 - 249",
"année_de_fondation": "2010",
"services": [
"Développement Web",
"Développement de logiciels",
« Conception Web (UI/UX) »,
« Développement d'applications mobiles »,
« Développement du commerce électronique »
]
},
{
"prénom": "Sigli",
"la description": "Sigli est une société de développement de logiciels dynamique spécialisée dans le développement de produits numériques et la transformation numérique. Nous excellons à concrétiser des idées innovantes en fournissant des solutions de bout en bout qui couvrent l'ensemble du cycle de développement, du concept au déploiement. Notre objectif principal est de fournir des produits numériques de haute qualité, évolutifs et à l'épreuve du temps, ce qui nous permet de naviguer efficacement dans les complexités de la transformation numérique. En plus de nos services de développement de base, nous accordons une grande importance aux solutions d'IA et de données, aidant les entreprises à tirer parti d'analyses avancées et de systèmes intelligents pour stimuler l'innovation et l'efficacité. En modernisant les opérations et en améliorant l'expérience client, nous garantissons que nos clients restent compétitifs dans un paysage numérique en constante évolution. L'expertise de notre équipe, combinée à un engagement à utiliser les dernières technologies et les meilleures pratiques, positionne Sigli comme un partenaire fiable pour les entreprises qui souhaitent prospérer à l'ère numérique. Nous sommes fiers d'être certifiés ISO/IEC 27001, garantissant que les données et les opérations de nos clients sont sécurisées et conformes. Chez Sigli, nous pensons qu'un projet réussi nécessite un mélange harmonieux de technologie de pointe, d'une équipe professionnelle et adaptable, de respect mutuel et de planification méticuleuse. Notre approche centrée sur le client repose sur la transparence, la responsabilité et un engagement sans faille envers le service. Nous communiquons ouvertement, assumons la responsabilité de notre travail et accordons toujours la priorité à la satisfaction du client.,
"taux_horaire": « 50 $ - 99 $/heure »,
"nombre_d'employés": "50 - 249",
"année_de_fondation": "2015",
"services": [
"Développement de logiciels",
"Développement Web",
« Big Data et BI »,
"Intelligence artificielle",
« Développement d'applications mobiles »,
« Services de test »,
« DevOps »
]
}
]

Réflexions finales

L'extraction des données GoodFirms peut vous donner un aperçu des entreprises, des services et des tendances du secteur. Base d'exploration Crawling API et Python pour collecter et organiser les listes de recherche et les profils d'entreprise. Ces données peuvent être utilisées pour des études de marché, des analyses de la concurrence ou des solutions basées sur les données.

Mais suivez toujours les pratiques éthiques de scraping Web en lisant les conditions de service de GoodFirm et en utilisant les données à bon escient. Avec la bonne approche et les bons outils, vous pouvez transformer GoodFirms en un véritable trésor d'informations commerciales.

Voici quelques guides supplémentaires qui pourraient vous intéresser :

Comment récupérer des super pages
Comment récupérer les pages jaunes
Comment récupérer les données immobilières de Zillow
Comment récupérer les questions de Stackoverflow

Si vous avez des questions ou souhaitez donner votre avis, notre équipe de soutien peut vous aider avec le scraping Web. Bon scraping !

Foire Aux Questions (FAQ)

Q. Quelles sont les considérations éthiques lors de la suppression de GoodFirms ?

Le scraping est un outil puissant, mais respectez toujours les conditions d'utilisation et les directives éthiques de GoodFirm. Ne faites pas de demandes excessives qui peuvent surcharger leurs serveurs, respectez leur fichier robots.txt et utilisez les données sans violer les droits de propriété intellectuelle.

Q. Comment puis-je gérer les défis potentiels tels que les captchas ou les blocages lors du scraping de GoodFirms ?

GoodFirms est un site Web statique, les captchas ou les blocages sont donc rares. Mais pour garantir un scraping fluide, vous pouvez utiliser Base d'exploration Crawling API pour des fonctionnalités telles que la rotation IP et les nouvelles tentatives de demande, qui peuvent contourner la limitation de débit et maintenir un accès cohérent.

Q. Quelles informations les entreprises peuvent-elles obtenir en récupérant les données de GoodFirms ?

Profils d'entreprise, services offerts, avis clients, taux horaires, nombre d'employés, années de création. Utilisez ces données pour comparer vos concurrents, les tendances du secteur et établir une communication ciblée.