Веб-парсинг
Изучите парсинг веб-страниц с помощью 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 здесь, если вы еще этого не сделали 🤗