PC & Mobile

Automation VS Scraping – Cheerio et Puppeteer for Marketers

Automation VS Scraping - Cheerio et Puppeteer for Marketers


Quand je parle aux développeurs, ils trouvent toujours étrange que j'aime gratter le Web. Ceci est principalement dû à deux raisons:

  1. Le regroupement est une solution instable et peu fiable pour extraire des données de sources de données, par rapport aux API.
  2. Construire des grattoirs signifie créer du code qui n’est pas nécessairement conforme à certaines meilleures pratiques, telles que la réutilisabilité. Le code est généralement très lié à un cas d'utilisation spécifique.

Mais le problème, c’est que quand un spécialiste en marketing commence à apprendre le code, on pense immédiatement à une tonne de cas d’utilisation. Une grande partie du travail que les spécialistes du marketing rêvent d’automatiser ne peut pas être réalisée avec des API officielles.

Il est très tentant de se débarrasser d'une partie du travail manuel consistant à extraire des informations du Web. Je dirais que pour un agent de commercialisation, le grattage et l’automatisation font partie des cas d’utilisation les plus courants des compétences en matière de codage.

Récemment, j’ai eu la chance de travailler avec Puppeteer et Cheerio, et d’alterner entre les deux. Voici donc le point de vue du spécialiste du marketing sur le moment où il faut utiliser chacun d’eux.

Puppeteer est une bibliothèque open source Node développée par Google. Il s'agit essentiellement d'un moyen de lancer un navigateur via Node et d'automatiser des actions sur Chrome.

Le principal cas d'utilisation de Puppeteer est l'automatisation.

Ce n’est pas toujours simple de récupérer des données. Prenons, par exemple, mon grattoir Product Hunt, Hunt.

Dans Product Hunt, les informations relatives aux utilisateurs supérieurs ne sont pas facilement disponibles dans le code HTML de la page lorsque vous les chargez pour la première fois. Avant de pouvoir accéder à la liste complète des votants, vous devez:

  1. Cliquez sur le panneau des votants.
  2. Faites défiler tout le chemin jusqu'à la fin de la liste

Pour ce faire, vous avez besoin d’un outil capable d’automatiser les actions du navigateur - c’est le rôle du marionnettiste. Utilisez Puppeteer lorsque vous devez vous connecter pour obtenir des données ou lorsque vous devez exécuter des actions automatisées dans le navigateur.

Cheerio est une autre bibliothèque NPM, également appelée «JQuery for Node». Il vous permet d'extraire des données avec un cadre léger, simple et rapide. Cheerio fonctionne avec les données HTML brutes qui y sont introduites, comme Python’s Beautiful Soup. Cela signifie que si les données dont vous avez besoin peuvent être extraites d'une URL, il est très simple de travailler avec Cheerio.

Vous trouverez ci-dessous le code qui peut être utilisé pour extraire des informations de Twitter sur une liste d’utilisateurs (par balise Twitter).

const axios = require ("axios");
const cheerio = require ("cheerio");

// Cette fonction utilise axios pour obtenir les données HTML sur une URL donnée.

const getHtml = async url => {
link = wait axios.get (url);
return link.data;
};

// le module utilise la fonction ci-dessus + Cheerio pour extraire les données Twitter d'une liste de tags utilisateurs

module.exports = fonction asynchrone run (userList) {
const enrichedUsers = [];

pour (utilisateur de productHuntUserList) {
essayer {
const $ = cheerio.load (attendez getHtml (`https://twitter.com/$ {user.tag}`));

// ici, nous extrayons les informations pertinentes de chaque page Twitter - numéro, liste de suiveurs et URL Twitter

laisser les suiveurs = $ (
".ProfileNav-item.ProfileNav-item - suiveurs> a> span.ProfileNav-value"
).texte();
const description = $ (". ProfileHeaderCard-bio"). text ();
const url = `https://twitter.com/$ {user.tag}`;

// crée un objet utilisateur avec les informations existantes et les nouvelles informations que nous avons extraites de twitter
const enrichedUser = {
tag: user.tag,
nom: utilisateur.nom,
profil: user.profile,
twitterDescription: description,
suiveurs twitter: adeptes,
pageUrl: url,
messagedAndFollowed: false
};

enrichedUsers.push (enrichedUser);
} catch (e) {
continuer; // ce n'est pas un bon moyen de gérer les erreurs, mais pour le tutoriel, ça ira.
}
}
restituer les utilisateurs enrichis;
};

Les deux bibliothèques ont des cas d'utilisation différents, mais sont souvent considérées comme les deux principales options de grattage de JS. Si je devais choisir, je pourrais dire que si les capacités d’automatisation de Puppeteer ne sont pas nécessaires, il serait plus efficace et plus pratique d’utiliser Cheerio.

Pendant que je travaillais sur Hunt, j’ai construit 2 grattoirs - un pour Product Hunt et un pour Twitter. J'ai initialement construit les deux avec Puppeteer, et j'ai remarqué de nombreux problèmes de performances lorsque j'essayais d'extraire une longue liste d'utilisateurs de Twitter (y compris des erreurs de mémoire sur le serveur Heroku).

Il a fallu environ 10 minutes à Puppeteer pour en finir avec 1000 votants.

J'ai ensuite réécrit le bot Twitter dans Cheerio (comme décrit ci-dessus) et constaté une amélioration des performances d'untour 5X + : Le nouveau code a pris environ 2 minutes (ou moins) pour terminer le grattage.

Les deux outils vous permettent d'utiliser un noeud pour l'automatisation et le grattage d'une manière que les spécialistes du marketing attribuent généralement à Python.

Ces outils sont un autre exemple de la manière dont l'apprentissage de Javascript peut être plus complexe que Python, mais peut éventuellement vous fournir une connaissance plus approfondie et holistique du développement Web.

En tant que spécialiste du marketing, vous pouvez probablement trouver plusieurs façons d'utiliser les deux. Je vous recommande de le faire et d'y aller. Si vous apprenez quelque chose de nouveau, vous pouvez aussi créer quelque chose d’utile!

Afficher plus

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Articles similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Fermer