Table des matières
Un guide technique pour générer des leads pour votre startup
Cet article suppose une connaissance du développement logiciel et est implémenté à l’aide de Python. L’objectif n’est pas d’enseigner le développement de logiciels de base, mais de montrer comment les logiciels peuvent être utilisés pour résoudre un problème commercial critique.
La génération de prospects est cruciale pour toute entreprise, sans nouveaux prospects pour remplir votre entonnoir de vente, il est impossible d’acquérir vos clients et de développer votre entreprise. Certaines entreprises suscitent beaucoup d’intérêt entrant, de sorte que les annonces PPC ou sur les réseaux sociaux peuvent suffire à générer des prospects. Mais que se passe-t-il si votre produit ou service est quelque chose que la plupart des gens ne recherchent pas spécifiquement? Cela pourrait être une nouvelle technologie, un produit de niche ou des services B2B où très peu de gens pourraient utiliser un moteur de recherche pour vous trouver.
Si votre entreprise a besoin d’une sorte de processus de vente et de marketing sortant, les prospects sont essentiels. L’option par défaut avec laquelle la plupart des entreprises choisissent d’acheter des prospects à partir de la pléthore de sites Web disponibles vendant des prospects ciblés. Bien souvent, vous souhaiterez peut-être le faire moins cher ou disposer de données plus ciblées basées sur quelque chose de très spécifique à votre secteur. Une chose importante que vous trouverez rarement dans les listes achetées est les scores de révision spécifiques liés à votre créneau. Il se peut que vous ne souhaitiez cibler que 4,5 étoiles, sur la base de trustpilot ou de toute autre source pertinente.
Nous allons donc commencer avec un projet pour animaux de compagnie, où nous allons construire une liste cible de contacts pour les concessionnaires automobiles. Notez que je n’ai jamais créé de liste pour les concessionnaires automobiles, je vais donc écrire le code lors de la création de cet article.
1. Trouver et explorer le site Web d’inscription de base
La plupart du temps, nous devrons commencer le processus en supprimant un site Web d’annonces qui compte de nombreuses entreprises ciblées. Cela peut être Yelp pour les restaurants, Booking.com pour les hôtels ou pour ce scénario, nous allons utiliser Cars.com pour trouver des concessionnaires.
Donc, en jouant avec le site Web Cars.com, il y a une page qui répertorie les concessionnaires automobiles et nous pouvons utiliser l’URL pour rechercher des codes postaux spécifiques pour obtenir une liste des concessionnaires automobiles de la région.
Le lien est: https://www.cars.com/dealers/buy/77001/?rd=30&sortBy=DISTANCE&order=ASC&perPage=20
Où 77001 est un code postal de Central Houston et est le rayon autour du code postal.
Si vous jouez avec le paramètre perPage, vous pouvez rapidement remarquer que vous pouvez le changer en n’importe quelle valeur que vous aimez (j’ai testé jusqu’à 1000). Mais, cela peut mettre à rude épreuve le serveur et il est très facile pour le serveur d’identifier la demande comme une demande de raclage et non comme une véritable demande utilisateur. N’hésitez pas à jouer avec cette valeur, mais attention à ne pas en faire trop. Pour ce guide, nous allons utiliser 200, ce qui fait que notre grattoir a besoin de 10 fois moins de demandes (contre 20 par page)
Jetons un coup d’œil à la page de liste et décidons du type de données que nous souhaitons extraire:
Nous voulons extraire:
- Nom du concessionnaire
- Nombre d’avis et score d’évaluation
- Tous les numéros de téléphone
- Adresse
Nous allons maintenant vérifier les pages intérieures des concessions pour voir s’il y a autre chose à extraire.
Il est essentiel que nous extrayions les sites Web des concessionnaires afin de trouver des contacts par e-mail. Nous pouvons également extraire le nombre de véhicules disponibles. Quel fournisseur principal nous fournirait ces informations? 😁
2. Commencez le projet scrapy
Scrapy est un excellent cadre pour les projets de raclage. Beaucoup de temps lors de la préparation de quelque chose de petit, j’utilise simplement la bibliothèque de requêtes par défaut pour boucler certaines requêtes http et obtenir les données dont j’ai besoin. Mais pour exécuter plusieurs scrapers en même temps et planifier efficacement les requêtes, vous avez besoin d’un framework comme scrapy.
Créons maintenant une nouvelle araignée dans le dossier cars / spiders nommé
Modifions d’abord le fichier
Vous pouvez tout laisser tel quel, mais vous devez modifier le DOWNLOAD_DELAY pour explorer avec respect.
# Set download delay to 1 second. This makes crawling slower
# But it makes blocking more unlikely and you won't cause
# issues to the server
DOWNLOAD_DELAY = 1
Commençons par un code passe-partout. C’est assez évident: nous définissons une araignée qui s’exécutera à chaque exécution
Cela démarrera le processus et commencera à créer des demandes basées sur les codes postaux qui sont dans la liste zip_codes. Les demandes sont traitées par une méthode appelée que nous allons créer ensuite.
import scrapyclass CarDealersSpider(scrapy.Spider):
# This name is used for running the spider
name = "car_dealers"def start_requests(self):
# This is a list of zip codes that we would like to scrape
zip_codes = ['77001', '66006']headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'
}for zip_code in zip_codes:
url = 'https://www.cars.com/dealers/buy/' + zip_code +
'/?rd=30&sortBy=DISTANCE&order=ASC&perPage=200'
yield scrapy.Request(url=url, callback=self.parse_listings_page, headers=headers)
Remarque: Sans passer un en-tête d’agent utilisateur à partir d’un navigateur de bureau ou de téléphone moderne, de nombreux sites Web seront plus lents, pourraient vous bloquer ou même ne pas répondre.
Analysons la page de liste avec la méthode que nous devons définir. Mais avant de définir la méthode, nous devons examiner le balisage de la page. Nous devons inspecter les éléments de la page, afin de trouver quel élément DOM contient un concessionnaire à la fois.
Il est évident que cet élément est l’élément. Afin de confirmer qu’il s’agit du bon élément, nous pouvons effectuer un test rapide:
Exécutez dans la console Chrome pour tester le xPath. Il doit renvoyer le nombre de concessionnaires affichés sur la page. Puisque nous avons utilisé perPage = 200, nous obtenons 200 éléments qui correspondent à la requête, ce qui confirme qu’il s’agit du bon élément.
La partie codage est devenue trop longue pour être incluse dans l’article Medium, alors n’hésitez pas à vérifier le code sur GitHub: https://github.com/arisp8/cars-com-scraper/blob/master/cars/spiders/car_dealers_spider.py
Le code comprend des commentaires expliquant comment tout fonctionne, afin que vous puissiez en apprendre autant que possible de cette implémentation.
Une fois que nous avons un script prêt, nous pouvons exécuter comme ceci pour obtenir toutes les informations dans un fichier CSV.
scrapy crawl car_dealers -o car_dealers.csv
Vous avez peut-être donné un nom différent à votre araignée ou vous pouvez vouloir nommer le fichier différemment, donc la version générique serait
scrapy crawl spider_name -o filename.csv
3. Enrichissez les prospects avec leurs coordonnées
Maintenant, après avoir terminé l’étape précédente, vous devriez avoir une liste d’entreprises qui ressemblent un peu à ceci. J’ai masqué la plupart des colonnes et trié par nombre de véhicules dans l’ordre décroissant. Cela signifie que nous recherchons les concessionnaires automobiles à Houston qui ont le plus de voitures disponibles à la vente.
Ces informations sont cool et tout, mais que pouvez-vous faire sans e-mails .. non?
Voilà la solution! Il est temps d’utiliser une solution comme Hunter ou Findthatlead, ou tout autre site Web -> outil de contacts que vous connaissez peut-être.
Ces sites Web prennent un site Web en entrée et ils vous fournissent une liste de contacts. Cela signifie que vous pouvez créer des listes ciblées par grattage, puis transmettre les résultats à l’un de ces outils pour obtenir toutes les informations de contact dont vous avez besoin: décideurs, e-mails, numéros de téléphone.
4. Démarrez votre campagne
Vos listes sont maintenant prêtes à être vendues à! Vous pouvez commencer à créer une campagne d’email avec un outil de votre choix.
Si vous savez que, par exemple, les concessionnaires de moins de 200 voitures ne sont pas des prospects qualifiés, avec un processus comme celui décrit ci-dessus, vous pouvez obtenir les prospects les plus ciblés.
Processus alternatif: enrichissez vos listes
Si vous avez déjà de grandes listes de prospects, vous pouvez combiner les informations que vous recueillez en grattant pour enrichir vos listes.
Vous devez avoir une valeur unique dans chacune des 2 listes afin de pouvoir faire correspondre les informations. Pour ce faire, la méthode la plus courante consiste à faire correspondre le domaine de l’entreprise. À l’aide d’un tableau Excel Pivot ou de simples fonctions Pandas en python, vous pouvez combiner les listes existantes avec celles que vous avez grattées pour obtenir des données puissantes pour vos ventes sortantes.
De nombreux critères de qualification pour les prospects sont impossibles à trouver dans la nature: par exemple le budget d’une entreprise ou l’expérience technique du décideur. Mais si vous pouvez rassembler toutes les pièces pertinentes à vos critères de qualification, vous devez le faire pour que votre équipe de vente puisse se concentrer uniquement sur les meilleures pistes.