Casos de uso de Web Scraping para comercializadores técnicos

Desde una perspectiva técnica de marketing, las bibliotecas de raspado y automatización son extremadamente importantes de aprender. He aquí una introducción a dos de las bibliotecas de raspado de banda más utilizadas en el nodo JS. Cuando hablo con los desarrolladores, siempre encuentran raro que me guste raspar la web. Esto se debe principalmente a dos razones:* El raspado es una solución inestable y poco fiable para extraer datos de fuentes de datos, en comparación con las API. * En términos de código, construir raspadores significa escribir código que no necesariamente cumpla con algunas de las mejores prácticas, como la reutilización. El código suele estar muy ligado a un caso de uso específico, pero la cosa es que cuando un vendedor comienza a aprender el código, inmediatamente se le ocurren una tonelada de casos de uso de raspado. Gran parte del trabajo que los profesionales de marketing sueñan con poder automatizar no se puede lograr con las API oficiales. Yo diría que para un vendedor, el raspado y la automatización están entre los casos de uso más comunes para las habilidades de codificación. Recientemente tuve la oportunidad de trabajar con Puppeteer y Cheerio, y cambiar entre los dos, así que aquí está la perspectiva de un vendedor sobre cuándo usar cada uno de ellos.

Marionetista

Puppeteer es una librería de código abierto de Nodo desarrollada por Google. Es básicamente una forma de lanzar un navegador a través de Node y automatizar las acciones en Chrome. El principal caso de uso de Marionetista es la Automatización. No siempre es fácil raspar los datos. Tomemos, por ejemplo, mi raspador Product Hunt, Hunt.in Product Hunt, la información de los votantes ascendentes no está fácilmente disponible en el HTML de la página cuando la cargue por primera vez. Para poder acceder a la lista completa de votantes ascendentes, debe hacer lo siguiente: Haga clic en el panel de votantes ascendentes y desplácese hasta el final de la lista. Usa Puppeteer cuando necesites iniciar sesión para obtener datos, o cuando necesites realizar acciones automáticas en el navegador.

Adiós

Cheerio es otra librería NPM, también llamada "JQuery for Node". Le permite raspar datos con un marco de trabajo ligero, simple y rápido. Cheerio trabaja con datos HTML en bruto que lo introducen, similar a Beautiful Soup de Python, si te es familiar. Esto significa que si los datos que necesitas para analizar pueden ser extraídos de una url, es muy sencillo trabajar con ellos en Cheerio.abajo hay un código que puede ser usado para extraer información de twitter sobre una lista de usuarios (por la etiqueta twitter).<pre>const axios = require("axios");
const cheerio = require("cheerio");
//Esta función utiliza axios para obtener los datos html en una url dada, también es posible hacer lo mismo usando el método fetchconst getHtml = async url => {
link = esperar axios.get(url);
devuelve link.data;
};
//Este es un módulo de nodo que usa la función anterior y Cheerio para extraer datos de twitter de una lista de etiquetas de usuario (usadas en el backend de Hunt)module.exports = asyncfunctionrun(userList) {
const enrichedUsers = [];
for (usuario de productHuntUserList) { {HuntUserList
intentar {
const $ = cheerio.load(esperar getHtml(`https://twitter.com/${user.tag}`));
// aquí extraemos la información relevante de cada página de twitter – número de seguidores, descripción, y seguidores de Twitter URLlet = $(
"ProfileNav-item.ProfileNav-item–followers> a> span.ProfileNav-valor"
).text();
const description = $(".ProfileHeaderCard-bio").text();
const url = “https://twitter.com/${user.tag}`;
// crear un objeto de usuario con la información existente y la nueva información que hemos extraído de twitterconst enrichedUser = {
etiqueta: user.tag,
nombre: nombre.usuario,
perfil: perfil de usuario,
twitterDescripción: descripción,
twitterFollowers: seguidores,
páginaUrl: url,
messagedAndFollowed: false
};
enrichedUsers.push(enrichedUser); // empujar el nuevo objeto de usuario en la matriz enrichedUsers
} captura (e) { {d)
continuar; // esta no es una buena manera de manejar los errores, pero no quería meterme en el manejo de errores aquí y funciona por el bien de este tutorial.
}
}
devuelve usuarios enriquecidos;
};

Cheerio VS Marionetista

Las dos bibliotecas tienen casos de uso diferentes, pero a menudo parecen ser las dos opciones principales para el raspado de JS. Si tuviera que elegir, podría argumentar que si no hay necesidad de las capacidades de automatización de Puppeteer, sería más eficiente y una mejor práctica usar Cheerio, mientras trabajo en Hunt, he construido 2 Scrapers – uno para Product Hunt y otro para Twitter. Inicialmente construí ambos con Puppeteer, y noté muchos problemas de rendimiento al intentar raspar una gran lista de usuarios de Twitter (incluyendo errores de memoria en el servidor de Heroku) – le tomó a Puppeteer unos 10 minutos terminar de raspar a 1000 votantes. Luego reescribí el bot de Twitter en Cheerio (como se describió anteriormente) y vi un aumento de rendimiento de alrededor de 5X+ : El nuevo código tardó unos 2 minutos (o menos) en terminar de raspar.

Resumen

Ambas herramientas le permiten utilizar el nodo para la automatización y el raspado de formas que los profesionales del marketing suelen atribuir a Python. Estas herramientas son otro ejemplo de cómo el aprendizaje de Javascript puede ser una molestia, pero eventualmente puede darte un conocimiento más profundo y holístico del desarrollo web. Como vendedor, usted probablemente puede pensar en muchas maneras de usar ambos, y le recomiendo que lo haga y se decida por ello. Si estás aprendiendo algo nuevo, ¡también podrías crear algo útil!

Etiquetas

MarketingCrecimiento HackingRaspado webProgramaciónJavascriptNodejsDesarrollo de softwareCodificación

Comentarios

Continúe la discusión