WEBYK WEBYK Індивідуальні OnLine уроки з web технологій
+38 093 766 39 11
oleggpann@gmail.com

Варианты использования скребков в сети для технических маркетологов

С точки зрения технического специалиста по маркетингу, чрезвычайно важно учиться библиотекам для анализа и автоматизации. Вот введение в две наиболее широко используемые библиотеки веб-скрепинга в Node JS. Когда я общаюсь с разработчиками, они всегда находят странным, что я люблю веб-скребки. Это происходит главным образом по двум причинам: * Очистка является нестабильным и ненадежным решением для извлечения данных из источников данных, по сравнению с API. * С точки зрения кода, создание скребков означает написание кода, который не обязательно соответствует некоторым передовым методам, таким как повторное использование. Код обычно очень сильно связан с конкретным вариантом использования. Но дело в том, что, когда маркетолог начинает изучать код, сразу приходит на ум тонна чистых вариантов использования. Большая часть работы, которую маркетологи мечтают о возможности автоматизации, не может быть выполнена с помощью официальных API. Избавиться от ручной работы по извлечению информации из Интернета очень заманчиво. Я бы сказал, что для маркетолога скребки и автоматизация являются одними из наиболее распространенных сценариев использования навыков кодирования. Недавно у меня была возможность поработать с Puppeteer и Cheerio и переключиться между ними, поэтому вот точка зрения маркетолога на то, когда использовать каждый из них.

Puppeteer

Puppeteer - это библиотека с открытым исходным кодом Node, разработанная Google. По сути, это способ запустить браузер с помощью Node и автоматизировать действия в Chrome. Основным вариантом использования Puppeteer является Automation. Не всегда просто очистить данные. Возьмите, к примеру, мой скребок для поиска продуктов Hunt. В Product Hunt информация об обновлении недоступна в HTML-коде страницы при первой загрузке. Прежде чем вы сможете получить доступ к полному списку upvoter, вы должны: Нажмите на панель upvoters. Прокрутите весь путь до конца списка. Для этого вам понадобится инструмент, который может автоматизировать действия в браузере - для этого и нужен кукловод. Используйте Puppeteer, когда вам нужно войти в систему, чтобы получить данные, или когда вам нужно выполнить автоматизированные действия в браузере.

Cheerio

Cheerio - это еще одна библиотека NPM, также называемая «JQuery for Node». Это позволяет собирать данные с помощью легкой, простой и быстрой структуры. Cheerio работает с исходными HTML-данными, которые вводятся в него, как и в случае с красивым супом Python, если вы знакомы. Это означает, что если данные, которые вам нужно проанализировать, могут быть извлечены из URL-адреса, в Cheerio очень просто работать с ними. Ниже приведен код, который можно использовать для извлечения из твиттера информации о списке пользователей (по тегу твиттера).const axios = require("axios"); const cheerio = require("cheerio");  //This function uses axios to get the html data on a given url it's also possible to do the same using the fetch method const getHtml = async url => {   link = await axios.get(url);   return link.data; };  //this is a node module that uses the above function and Cheerio to extract twitter data from a list of user tag (used in the backend of Hunt)  module.exports = async function run(userList) {   const enrichedUsers = [];    for (user of productHuntUserList) {     try {       const $ = cheerio.load(await getHtml(`https://twitter.com/${user.tag}`));  // here we extract the relevant information from each twitter page - followers number, description, and Twitter URL        let followers = $(         ".ProfileNav-item.ProfileNav-item--followers > a > span.ProfileNav-value"       ).text();       const description = $(".ProfileHeaderCard-bio").text();       const url = `https://twitter.com/${user.tag}`;        // create a user object with existing info and the new info we've extracted from twitter       const enrichedUser = {         tag: user.tag,         name: user.name,         profile: user.profile,         twitterDescription: description,         twitterFollowers: followers,         pageUrl: url,         messagedAndFollowed: false       };       enrichedUsers.push(enrichedUser); // push the new user object into the enrichedUsers array     } catch (e) {       continue; // this is not a good way to handle errors, but I didn't want to get into error handling here and it works for the sake of this tutorial.     }   }   return enrichedUsers; };

Cheerio VS Puppeteer

Две библиотеки имеют разные варианты использования, но часто кажутся двумя основными вариантами JS scraping. Если бы мне пришлось выбирать, я мог бы утверждать, что если нет необходимости в возможностях автоматизации Puppeteer, было бы более эффективно и лучше использовать Cheerio. Пока я работаю над Hunt, я построил 2 скребка - один для Product Hunt и один для Twitter. Первоначально я построил оба с Puppeteer, и я заметил много проблем с производительностью при попытке очистить большой список пользователей из Twitter (включая ошибки памяти на сервере Heroku) - Puppeteer потребовалось около 10 минут, чтобы закончить очистку 1000 upvoters. Затем я переписал бота Twitter в Cheerio (как описано выше) и увидел повышение производительности примерно в 5 раз: новый код занял около 2 минут (или меньше), чтобы завершить очистку.

Резюме

Оба инструмента позволяют вам использовать узел для автоматизации и очистки таким образом, что маркетологи обычно приписывают Python. Эти инструменты являются еще одним примером того, как изучение Javascript может быть проблемой в заднице, но может в конечном итоге дать вам более глубокие и целостные знания о веб-разработке. Как маркетолог, вы, вероятно, можете придумать много способов использовать оба, и я рекомендую, чтобы ты так и делаешь. Если вы изучаете что-то новое, вы можете создать что-то полезное!

Теги

Маркетинговый рост Хакерство Web Scraping Программирование Javascript Кодирование разработки программного обеспечения Nodejs

Комментарии

Продолжить обсуждение
Источник: https://hackernoon.com/automation-vs-scraping-cheerio-and-puppeteer-for-marketers-qjg330mg

Якщо у вас виникли питання, вбо ви бажаєте записатися на індивідуальний урок, замовити статтю (інструкцію) або придбати відеоурок, пишіть нам на:
скайп: olegg.pann
telegram, viber - +380937663911
додавайтесь у телеграм-канал: t.me/webyk
email: oleggpann@gmail.com
ми у fb: www.facebook.com/webprograming24
Обов`язково оперативно відповімо на усі запитіння


Поділіться в соцмережах



Подобные статьи:


facebook
×
Підришіться на цікаві пости.
Підписатись