Веб-парсинг

Изучите парсинг веб-страниц с помощью Node.js и ScrapingAnt за 5 минут

Как собирать данные и автоматизировать ваши задачи с помощью JavaScript

JavaScript - популярный и широко используемый язык, который мы можем использовать вместе со средой выполнения Node.js в качестве инструмента для сканирования Интернета, сбора данных и автоматизации нашей жизни или развития бизнеса.

В сегодняшнем посте я расскажу, как эффективно очищать общедоступные данные в Интернете с помощью JavaScript, и в качестве примера я выполню сценарий извлечения списка лучших писателей (или блоггеров) на этой платформе вместе с количеством их последователи. Эта практика имеет много преимуществ, таких как выбор маркетинга влиятельных лиц в качестве стратегии цифрового маркетинга.

Сбор данных или веб-сборка - это форма извлечения информации с веб-сайта или приложения (удобочитаемый вывод) и сохранения ее в электронной таблице или локальном файле. Этот метод не является незаконным, но его цель и способ применения могут быть определены .
- Что такое парсинг данных?

После прочтения этого поста у вас будет функциональное понимание того, как создать и запустить проект Node.js (если у вас его еще нет), и как использовать библиотеку для очистки Интернета.

Итак, без лишних слов, приступим.

Почему ScrapingAnt?

Как веб-скребок, вы решаете сложные задачи. Вам нужно, например, убедиться, что ваши запросы не будут заблокированы целевым сайтом.

Но хорошая новость в том, что вам не нужно делать это самостоятельно. На рынке есть инструменты, которые обеспечивают необходимую инфраструктуру и методы для достижения ваших целей. Используя инструмент для очистки веб-страниц, вы получите следующие преимущества:

  • Обойти CAPTCHA
  • Автоматическая ротация IP-адресов для предотвращения блокировки IP-адресов.
  • Рендеринг JavaScript
  • Экспорт извлеченных данных в JSON, текстовый файл, HTML, CSV и т. Д.

ScrapingAnt - инструмент для очистки, обладающий следующими преимуществами:

  • API веб-очистки, который запускает под капотом кластер из сотен браузеров Chrome для выполнения задач очистки веб-страниц.
  • Разнообразие и ротация прокси.
  • Поддержка Python, JavaScript и любых языков программирования, которые могут выполнять вызовы API.
  • Бесплатный план с 10 000 кредитов API, который включает: рендеринг JavaScript, пользовательские файлы cookie, предварительную обработку вывода, базовую поддержку по электронной почте и документацию.

Обсуждение дешево. Давайте создадим код и посмотрим, как достичь нашей цели с помощью одного простого скрипта. Если вы предпочитаете смотреть, есть видео здесь:

Шаг 1. Создайте проект Node.js

Чтобы создать новый проект Node.js с файлом package.json в нем, вам нужно создать новую папку, перейти в нее, затем запустить npm init и указать некоторые детали по мере необходимости, как на следующем снимке экрана:

mkdir web-scrapping
cd web-scrapping
npm init

Шаг 2: Установите и вызовите необходимые библиотеки

Затем установите две зависимости, необходимые для нашего приложения:

npm install @scrapingant/scrapingant-client
npm install cheerio

Клиент ScrapingAnt

Вместо того, чтобы использовать HTTP-клиент для запроса целевого веб-сайта или веб-приложения, мы просто воспользуемся библиотекой scrapingant-client, потому что она уже использует HTTP-клиент в своей реализации, как вы можете видеть в классе ScrapingAntClient:

Cheerio

После отправки запросов на нашу целевую веб-страницу и получения ответов нам необходимо проанализировать DOM, чтобы извлечь нужные данные.

cheerio - эффективная и легкая библиотека, которая предоставляет API для анализа и управления DOM. Это позволяет вам использовать богатый и мощный API jQuery на стороне сервера:

@ типы / узел

Установите @types/node, чтобы иметь возможность использовать метод require() для импорта зависимостей:

npm install --save-dev @types/node

Перейдите к точке входа в свой проект - это index.js файл в корневой папке проекта, если вы не указали для него другое имя (в моем проекте я назвал его scraper.js) - и вызовите в нем необходимые библиотеки:

const client  = require('@scrapingant/scrapingant-client');
const cheerio = require('cheerio');

Шаг 3. Выберите цель, которую нужно очистить

Я выбрал эту веб-страницу https://medium.com/tag/${tag} и хочу просмотреть список лучших писателей и количество их подписчиков.

После замены параметра ${tag} на соответствующее имя тега, например лидерство, стартап, технология, творчество и так что мы получим правильный список, как на скриншоте ниже, который показывает справа список лучших авторов для тега «tech»:

Шаг 4. Установите URL-адрес и проверьте ответ

В корневой папке моего проекта Node JS у меня есть скрипт scraper.js, содержащий следующий код - перед тем, как попробовать его самостоятельно, вам нужно просто установить ключ API ScrapingAnt в качестве значения для константы SCRAPINT_ANT_KEY:

Шаг 5: запустите

Теперь все, что вам нужно сделать, это просто запустить свой терминал и вызвать узел со сценарием в командной строке:

node scraper.js

Вы заметите, что в зависимости от количества тегов, которые вы установили в своем скрипте, и от того, насколько длинный список Top Writers будет для каждого из них, для получения результата потребуется некоторое время. Просто наберитесь терпения и дождитесь этого, тогда вы получите данные JSON на свою консоль, похожие на следующий фрагмент:

Спасибо за прочтение! Надеюсь, вы получите некоторые идеи или вдохновение для некоторых бизнес-идей или того, как автоматизировать некоторые сложные задачи.

Хочу больше?

Я пишу о технике, технологиях и лидерстве для сообщества умных и любопытных людей 🧠💡. Подпишитесь на мою бесплатную рассылку новостей по электронной почте или подпишитесь на Medium здесь, если вы еще этого не сделали 🤗