что такое скрапинг веб сайтов

Web Scraping – что это такое и зачем он нужен

Каталог товаров, спортивная статистика, цены на офферы… Что-то знакомое, правда? Эти и другие вещи собирают с помощью специальных софтов или вручную в документы. Там информация структурирована; нет необходимости разбираться что и где.

Если вас заинтересовал такой метод, подумайте о веб-скрейпинге.

Что такое веб-скрейпинг?

Web scraping – процесс сбора данных с помощью программы, то есть в автоматическом режиме. В русскоязычном пространстве этот процесс называют парсингом. А программу – парсером. Точно так же как за бугром говорят to scrape web page, у нас – парсить страницу. Так что если изучаете материал на английском, не переводите как “скрабить”, “скрабы” и так далее 🙂

Как работает веб-скрейпинг?

Запускаете программу и загружаете в нее адреса страниц. А еще наполняете софт ключевыми словами и фразами, блоками и числами, которые нужно собрать. Эта программка заходит на указанные сайты и копирует в файл все, что найдет. Это может быть файл CSV-формата или Excel-таблица.

Когда программа закончит работу, вы получите файл, в котором вся информация будет структурирована.

Для чего он нужен?

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

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

То есть парсить информацию могут все, кто захочет. В основном этим занимаются те, кому нужно проанализировать контент конкурентов.

Зачем нужны прокси для веб-скрейпинга?

В web data scraping вы не обойдетесь без прокси. Есть две причины использовать промежуточные серверы.

Если обновляете страницу определенное количество раз, на ней срабатывает антифрод-система. Сайт начинает воспринимать ваши действия как DDoS-атаку. Итог – доступ к странице закрывается, вы не можете зайти на нее.

Парсер делает огромное количество запросов на сайт. Поэтому в любой момент его работу может остановить антифрод-система. Чтобы успешно собрать информацию, используйте даже несколько IP-адресов. Все зависит от того, какое количество запросов необходимо сделать.

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

Чтобы обойти такую антифрод-систему, используют прокси того же сервера, на котором расположен сайт. Например, парсить инфу с американского веб-ресурса нужно с американским IP.

Какие прокси использовать?

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

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

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

Купить недорогие прокси для веб-скрейпинга вы можете на нашем сайте. Если не будет получаться настроить его или возникнут другие вопросы – пишите. Саппорт онлайн 24/7. Отвечает в течение 5 минут.

А сколько их должно быть?

Точно сказать, сколько использовать прокси для веб-скрейпинга, нельзя. У каждого сайта свои требования, а у каждого парсера в зависимости от задачи будет свое количество запросов.

300-600 запросов в час с одного айпи-адреса – вот примерные лимиты сайтов. Будет хорошо, если отыщете ограничение для ресурсов с помощью тестов. Если у вас нет такой возможности – берите среднее арифметическое: 450 запросов в час с одного IP.

К каким программам обратиться?

Инструментов для парсинга много. Они написаны на разных языках программирования: Ruby, PHP, Python. Есть программы с открытым кодом, где пользователи вносят изменения в алгоритм, если нужно.

Для вас – самые популярные программы для веб-скрейпинга:

Найдите подходящий софт для себя. А еще лучше – попробуйте несколько и выберите из них лучший.

А это законно?

Если боитесь собирать данные с сайтов, не стоит. Парсинг – это законно. Все, что находится в открытом доступе, можно собирать.

Например, вы можете спокойно спарсить электронные почты и номера телефонов. Это личная информация, но если пользователь сам публикует ее, претензий уже не может быть.

Заключение

Благодаря веб-скрапингу пользователи собирают каталоги товаров, цены на эти товары, спортивную статистику, даже целые тексты. Парсинг без блокировки – это реально: достаточно просто закупиться IP-адресами и менять их.

Источник

Парсинг данных: лучшие сервисы для веб-скрапинга

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

Что такое скрапинг данных?

Веб-скрапинг (Web Scraping) — это способ извлечения данных с сайта или приложения (в понятном человеку виде) и сохранение их в таблицу или файл.

К категории полезных данных могут относиться:

Это легальная техника, но иногда способы использования этих данных могут быть незаконными. Например, в октябре 2020 года Facebook подал жалобу в федеральный суд США против двух компаний, обвиняемых в использовании двух вредоносных расширений для браузера Chrome. Эти расширения позволяют выполнять скрапинг данных без авторизации в Facebook, Instagram, Twitter, LinkedIn, YouTube и Amazon.

Оба расширения собирали публичные и непубличные данные пользователей. Компании же продавали эти данные, которые после использовались для маркетинговой разведки — это нелегально.

Как используют полученные данные

У веб-скрапинга/парсинга очень широкий спектр применений. Например:

1. Отслеживание цен

Собирая информацию о товарах и их ценах, например, на Amazon или других платформах, вы сможете корректировать цены, чтобы опередить конкурентов.

2. Рыночная и конкурентная разведка

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

3. Модернизация сайтов

Когда компании переносят устаревшие сайты на современные платформы, они используют скрапинг сайта для быстрой и легкой выгрузки данных.

4. Мониторинг новостей

Скрапинг новостных сайтов и блогов позволяет отслеживать интересующие темы и экономит ваше время.

5. Анализ эффективности контента

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

Данные в таком формате:

Сервисы для веб-скрапинга

Скрапинг требует правильного парсинга исходного кода страницы, рендеринга JavaScript, преобразования данных в читаемый вид и, по необходимости, фильтрации… Звучит суперсложно, правда? Но не волнуйтесь — есть множество готовых решений и сервисов, которые упрощают процесс скрапинга.

Вот 7 лучших инструментов для парсинга сайтов, которые хорошо справляются с этой задачей.

1. Octoparse

Octoparse — это простой в использовании скрапер для программистов и не только.

Особенности:

2. ScrapingBee

Сервис ScrapingBee Api использует «безлоговый браузер» и смену прокси. Также имеет API для скрапинга результатов поиска Google.

Безлоговый браузер (headless-браузер) — это инструмент разработчика, с помощью которого можно тестировать код, проверять качество и соответствие верстке.

Особенности:

3. ScrapingBot

ScrapingBot предоставляет несколько API: API для сырого HTML, API для сайтов розничной торговли, API для скрапинга сайтов недвижимости.

Особенности:

4. Scrapestack

Scrapestack — это REST API для скрапинга веб-сайтов в реальном времени. Он позволяет собирать данные с сайтов за миллисекунды, используя миллионы прокси и обходя капчу.

Особенности:

5. Scraper API

Scraper API работает с прокси, браузерами и капчей. Его легко интегрировать — нужно только отправить GET запрос к API с вашим API ключом и URL.

Особенности:

6. ParseHub

ParseHub — ещё один сервис для веб-скрапинга, не требующий навыков программирования.

Особенности:

7. Xtract.io

Xtract.io — это гибкая платформа, использующая технологии AI, ML и NLP.

Её можно настроить для скрапинга и структурирования данных сайтов, постов в соцсетях, PDF-файлов, текстовых документов и электронной почты.

Цена: есть демо-версия

Особенности:

Независимо от того, чем вы занимаетесь, парсинг веб-страниц может помочь вашему бизнесу. Например, собирать информацию о своих клиентах, конкурентах и прорабатывать маркетинговую стратегию.

Источник

Как заработать на веб-скрапинге

А вы знали о том, что то, что вы сейчас читаете, это — данные? Вы видите слова, но на серверах всё это хранится в виде данных. Эти данные можно куда-то скопировать, можно разобраться в их структуре, с ними можно сделать что-то ещё. Собственно говоря, только что мы привели упрощённое описание веб-скрапинга. Скраперы просматривают код, из которого созданы веб-сайты (HTML-код), или работают с базами данных, и вытаскивают отовсюду те данные, которые им нужны. Практически каждый веб-сайт можно подвергнуть скрапингу. На некоторых сайтах применяются особые меры, которые мешают работе веб-скраперов. Но тот, кто достаточно хорошо знает своё дело, способен успешно собрать данные с 99% существующих сайтов.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Если вы не знали о том, что такое веб-скрапер, то теперь вы, в общих чертах, об этом знаете. А это значит, что мы можем заняться тем, ради чего вы, вероятно, начали читать эту статью. Мы сможем приступить к разговору о заработке на скрапинге. Такой заработок, кстати, не так сложен, как может показаться на первый взгляд. На самом деле, все методы и примеры, которые я собираюсь вам показать, укладываются в менее чем 50 строк кода. А изучить всё это можно буквально за несколько часов. Собственно говоря, полагаю, что сейчас вы вполне готовы к тому, чтобы узнать о трёх способах заработка с помощью веб-скрапинга.

Способ №1: создание ботов

«Бот» — это всего лишь технический термин, обозначающий программу, которая способна что-то делать. Такую программу можно создать и продать тому, кому нужно автоматизировать то, что умеет программа.

Для того чтобы продемонстрировать вам технологию разработки и продажи ботов, я создал бота для Airbnb. Этот бот позволяет пользователям вводить данные о некоем городе и возвращает сведения обо всех жилищах, которые в этом городе предлагает Airbnb. Сюда входят данные о цене, рейтинге, о количестве постояльцев, которое может принять дом, о количестве спален, кроватей, ванных комнат. И всё это делается благодаря применению технологий веб-скрапинга при сборе данных из постов, размещаемых на сайте Airbnb.

Для того чтобы показать этого бота в действии, я собираюсь узнать с его помощью о том, что можно снять в Риме, в Италии. Я передаю боту соответствующие данные, а он, за секунды, находит 272 уникальных предложения и оформляет их в виде удобного Excel-листа.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Теперь с такими данными работать гораздо легче, чем на сайте. Можно, например, сравнить разные жилища и их особенности. Кроме того, эти данные удобно фильтровать. В моей семье 4 человека. Если мы соберёмся в Рим, то нам понадобится Airbnb-жильё с как минимум 2 кроватями, отличающееся адекватной ценой. Благодаря тому, что все данные собраны в удобном формате, в Excel, с ними можно весьма продуктивно работать. Как оказалось, моим нуждам удовлетворяют 7 результатов из 272.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Среди этих 7 результатов я выбрал бы жильё Vatican St.Peter Daniel. У него очень хороший рейтинг и, из 7 найденных результатов, оно самое дешёвое ($67 за ночь). После того, как я нашёл то, что меня заинтересовало, я могу взять соответствующую ссылку из таблицы, открыть её в браузере и забронировать жильё.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Поиск жилища, в котором можно остановиться в путешествии, может оказаться непростой задачей. Я уверен, что все с этим сталкивались. Именно поэтому есть люди, которые, ради упрощения этого процесса, готовы платить. Мне удалось упростить поиск жилья с помощью созданного мной бота. Только что я продемонстрировал вам то, как я всего за 5 минут нашёл именно то, что мне нужно.

Люди готовы платить за то, что хотя бы немного облегчает им жизнь.

Способ №2: перепродажа товаров, купленных с хорошими скидками

Один из наиболее распространённых способов использования веб-скрапинга заключается в сборе с различных сайтов информации о ценах товаров. Есть люди, которые создают скраперов, запускающихся ежедневно и собирающих цены на конкретный товар. Когда цена на товар упадёт до определённого уровня, программа автоматически покупает товар, стремясь сделать это до того, как этот товар окажется распроданным. Затем, так как спрос на товар будет выше предложения, тот, кто до этого купил товар по низкой цене, перепродаёт его по более высокой цене и получает прибыль. Это — пример лишь одной из тактик перепродажи товаров, купленных по низким ценам, которой пользуются создатели веб-скраперов.

Ещё одна схема, пример которой я сейчас продемонстрирую, может помочь вам хорошо сэкономить или достойно заработать.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Применим эти рассуждения к анализу цен на товары в универсальном интернет-магазине Hudson’s Bay. У них постоянно бывают распродажи товаров самых разных марок. Мы, пользуясь технологиями веб-скрапинга, собираемся найти товары с самыми высокими скидками.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

После обработки сайта скрапер выдал более 900 товаров, и, как можно заметить, среди них есть всего один, скидка на который превышает 50%. Это — товар Perry Ellis Solid Non-Iron Dress Shirt.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Этот метод, если найти подходящую нишу, способен помочь в заработке серьёзных денег.

Способ №3: сбор и продажа данных

В интернете море бесплатных, доступных каждому данных. Часто эти данные довольно легко собирать, а значит, они легко доступны тем, кто хочет их как-то использовать. Но, с другой стороны, есть данные, собрать которые не так уж и легко. Для их сбора и представления в виде аккуратного набора данных может понадобиться либо много времени, либо много работы. Это стало основой развития рынка продажи данных. Существуют компании, которые занимаются только тем, что собирают данные, которые может быть непросто собрать. Они приводят эти данные в приличный вид, возможно, делают интерфейсы для работы с такими данными, и, за определённую плату, дают работать с этими данными тем, кому они нужны.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

А я сейчас хочу рассказать о том, как получить те же данные, которые продаются на BigDataBall, совершенно бесплатно, и о том, как сформировать из них аккуратно оформленный набор данных, напоминающий те наборы, которые я уже вам показывал.

Как я уже говорил, доступ к данным, которые продаёт сайт BigDataBall, есть не только у этого сайта. Например, на сайте basketball-reference.com размещены те же данные, но они не структурированы и не сгруппированы. То есть — работать с ними неудобно, их нельзя просто загрузить, сформировав из них необходимый кому-то набор данных. Именно тут нам на помощь и приходит веб-скрапинг. А именно, я хочу собрать с сайта журналы игроков и оформить всё это в виде структурированного набора данных, напоминающего наборы данных BigDataBall. Ниже показан результат сбора данных

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

Не стоит и говорить, что вы вполне можете заниматься тем же самым, чем занимаются сотрудники BigDataBall. А именно: находить данные, которые сложно собирать вручную, собирать их с помощью компьютера и продавать их тем, кто хочет получить их в удобном для работы виде.

Итоги

Веб-скрапинг — это весьма интересный современный способ заработка. Если правильно воспользоваться технологиями веб-скрапинга, это может принести немалые деньги. И это гораздо проще, чем многие думают.

Источник

15 топовых веб скрапинг решений 2021 года

Веб скрапинг позволяет компаниям автоматизировать процессы сбора веб данных с помощью ботов или автоматизированных скриптов, называемых веб-сканерами и загружать эти данные в формате Excel, CSV или XML для последующей аналитики.

Представляем вашему вниманию список топ 15 инструментов для парсинга 2021 года.

Scraper API

Scraper API позволяет получить содержимое HTML с любой страницы с помощью вызова API. С Scraper API можно с легкостью работать с браузерами и прокси-серверами и обходить проверочные код CAPTCHA. Единственное на что необходимо сосредоточиться это превращение веб-сайтов в ценную информацию. С этим иснтрументом практически невозможно быть заблокированным, так как он меняет IP-адреса при каждом запросе, автоматически повторяет неудачные попытки и решает капчу за вас.

Octoparse

Octoparse это бесплатный инструмент предназначенный для веб скрапинга. Он позволяет извлекать данные с интернета без строчки кода и превращать веб-страницы в структурированные данные всего за один клик. Благодаря автоматической ротации IP-адресов для предотвращения блокировки и возможности планирования последующего скрапинга этот инструмент является одним из самых эффективных.

DataOx

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

ScrapingBot

Scraping-Bot.io предлагает мощный API для извлечения HTML-содержимого. Компания предлагает API-интерфейсы для сбора данных в области розничной торговли (описание продукта, цена, валюта, отзыв) и недвижимости (цена покупки или аренды, площадь, местоположение). Доступные тарифные планы, JS-рендеринг, парсинг с веб-сайтов на Angular JS, Ajax, JS, React JS, а также возможность геотаргетинга делают этот продукт незаменимым помощником для сбора данных.

Wintr

Wintr это API для парсинга веб-страниц, использующий вращающиеся резидентные прокси, позволяющий извлекать и анализировать любые данные доступные в сети. Простой в использовании и полностью настраиваемый Wintr включает множество инструментов для сбора данных даже с самых сложных веб-сайтов. Например, можно легко извлечь содержимое с общедоступной веб-страницы с помощью ротационного IP-адреса или автоматизировать аутентификацию с помощью Javascript рендеринга, а затем извлечь личные данные с помощью файлов cookie и постоянного IP-адреса.

Import.io

Webhose.io

Webhose.io это расширенный API сервис для извлечения веб данных в реальном времени. Это инструмент очень часто изпользуют для извлечения исторических данных, мониторинга СМИ, бизнес-аналитики, финансового анализа, а также для академических исследований.

ParseHub

Mozenda

Mozenda это корпоративное программное обеспечение разработанное для всех видов задач по извлечению данных. Этой компании доверяют тысячи предприятий и более 30% компаний из списка Global Fortune 500. Это один из лучших инструментов для парсинга веб-страниц, который поможет за считанные минуты создать скрапер агента. Mozenda также предлагает функции Job Sequencer and Request Blocking для сбора веб-данных в реальном времени и лучший сервис для работы с клиентами.

Diffbot

Diffbot автоматизирует извлечение веб-данных с помощью искусственного интеллекта и позволяет легко получать различные данные с любого сайта. Вам не нужно платить за дорогостоящий парсинг веб-страниц или делать это в ручную.

Этот инструмент поможет увеличить объем скрапинга до 10 000 доменов, а функция Knowledge Graph предоставит точные, полные и подробные данные с любого интернет источника.

Luminati

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

FMiner

FMiner это программное обеспечение для парсинга веб-страниц, извлечения веб-данных, веб-сканирования и поддержки веб-макросов для Windows и Mac OS X. Этот простой в использовании инструмент извлечения данных сочетает в себе лучшие в своем классе функции от простых задач до комплексных проектов по извлечению данных, требующими ввода форм, списков прокси-серверов, обработки Ajax и многоуровневого сканирования веб страниц.

Outwit

Data streamer

Data Streamer помогает получать контент из социальных сетей. Это один из лучших веб-парсеров, который позволяет извлекать важные метаданные с помощью NLP. Встроенный полнотекстовый поиск на базе Kibana и Elasticsearch и простая в использовании и всеобъемлющая консоль администратора обеспечивает эффективный сбор необходимой информации.

Источник

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

Знание только одного подхода к веб скрапингу решает проблему в краткосрочной перспективе, но все методы имеют свои сильные и слабые стороны. Осознание этого экономит время и помогает решать задачу эффективнее.

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

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

Если нет, советую углубиться в теорию, а потом вернуться к статье.

Статический контент

Начнем с простейшего подхода.

Если вы планируете скрапить веб-страницы, это первое с чего нужно начать. Потребуется незначительная компьютерная мощность и минимум времени.

Однако это работает только в том случае, если исходный HTML код содержит данные, на которые вы ориентируетесь. Чтобы проверить это в Chrome, щелкните правой кнопкой мыши страницу и выберите «Просмотр кода страницы». Теперь вы должны увидеть исходный код HTML.

Как только найдете данные, напишите CSS селектор, принадлежащий wrapping элементу, чтобы позже у вас была ссылка.

Для реализации вы можете отправить HTTP-запрос GET на URL-адрес страницы и получить обратно исходный HTML код.

В Node можно использовать инструмент CheerioJS, чтобы парсить необработанный HTML и извлекать данные с помощью селектора. Код будет выглядеть так:

Динамический контент

Во многих случаях вы не можете получить доступ к информации из необработанного HTML-кода, потому что DOM управлялся JavaScript, выполняемым в фоновом режиме. Типичным примером этого является SPA (одностраничное приложение), где HTML-документ содержит минимальный объем информации, а JavaScript заполняет его во время выполнения.

В этой ситуации решение состоит в том, чтобы создать DOM и выполнить сценарии, расположенные в исходном коде HTML, как это делает браузер. После этого данные могут быть извлечены из этого объекта с помощью селекторов.

Headless браузеры

Headless браузер это то же самое, что и обычный браузер, только без пользовательского интерфейса. Он работает в фоновом режиме, и вы можете управлять им программно вместо того, чтобы щелкать мышью и печатать с клавиатуры.

Puppeteer один из самых популярных headless браузеров. Это простая в использовании библиотека Node, которая предоставляет API высокого уровня для управления Chrome в автономном режиме. Он может быть настроен для запуска без заголовка, что очень удобно при разработке. Следующий код делает то же самое, что и раньше, но он будет работать и с динамическими страницами:

Конечно, можно делать более интересные вещи с Puppeteer, поэтому стоит посмотреть документацию. Вот фрагмент кода, который перемещается по URL, делает снимок экрана и сохраняет его:

Для работы браузера требуется гораздо больше вычислительной мощности, чем для отправки простого запроса GET и анализа ответа. Поэтому выполнение относительно медленное. Не только это, но и добавление браузера в качестве зависимости делает пакет массивным.

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

Вы подумаете, что излишне моделировать целый браузер только для создания DOM. На самом деле это так, по крайней мере, при определенных обстоятельствах.

Jsdom — библиотека Node, которая анализирует передаваемый HTML, как это делает браузер. Однако это не браузер, а инструмент для построения DOM из заданного исходного HTML кода, а также для выполнения кода JavaScript в этом HTML.

Благодаря этой абстракции Jsdom может работать быстрее, чем headless браузер. Если это быстрее, почему бы не использовать его вместо headless браузеров все время?

Цитата из документации:

У людей часто возникают проблемы с асинхронной загрузкой скриптов при использовании jsdom. Многие страницы загружают скрипты асинхронно, но невозможно определить, когда это произошло, и, следовательно, когда надо запустить код и проверить полученную структуру DOM. Это фундаментальное ограничение.

Это решение показано в примере. Каждые 100 мс проверяется, появился ли элемент или произошел тайм-аут (через 2 секунды).

Он также часто выдает сообщения об ошибках, когда Jsdom не реализует некоторые функции браузера на странице, такие как: “Error: Not implemented: window.alert…”или “Error: Not implemented: window.scrollTo…”. Эта проблема также может быть решена с помощью некоторых обходных путей (виртуальных консолей).

Как правило, это API более низкого уровня, чем Puppeteer, поэтому нужно реализовать некоторые вещи самостоятельно.

Это немного усложняет использование, как видно из примера. Jsdom для этой же работы предлагает быстрое решение.

Давайте посмотрим на тот же пример, но с использованием Jsdom:

Jsdom — это быстрое и легкое решение, но можно всё сделать еще проще.

Нужно ли нам моделировать DOM?

Веб-страница, которую вы хотите скрапить, состоит из тех же HTML и JavaScript, тех же технологий, которые вы уже знаете. Таким образом, если вы найдете фрагмент кода, из которого были получены целевые данные, можно повторить ту же операцию, чтобы получить тот же результат.

Если всё упростить, данные, которые вы ищете, могут быть:

Найдя ресурс, содержащий данные, вы можете отправить аналогичный сетевой запрос на тот же сервер, что и исходная страница. В результате вы получите ответ, содержащий целевые данные, которые можно легко извлечь с помощью регулярных выражений, строковых методов, JSON.parse и т. д.

Простыми словами, вы можете взять ресурс, на котором расположены данные, вместо того, чтобы обрабатывать и загружать весь материал. Таким образом, проблема, показанная в предыдущих примерах, может быть решена с помощью одного HTTP-запроса вместо управления браузером или сложным объектом JavaScript.

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

Начните с наблюдения за сетевым трафиком. Отличный инструмент для этого — вкладка Network в Chrome DevTools. Вы увидите все исходящие запросы с ответами (включая статические файлы, AJAX-запросы и т. д.), чтобы выполнять их итерацию и искать данные.

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

Как видите, такой способ может потребовать гораздо больше работы, чем методы, описанные выше. С другой стороны, это обеспечивает наилучшую производительность.

Диаграмма показывает требуемое время выполнения и размер пакета по сравнению с Jsdom и Puppeteer:

что такое скрапинг веб сайтов. Смотреть фото что такое скрапинг веб сайтов. Смотреть картинку что такое скрапинг веб сайтов. Картинка про что такое скрапинг веб сайтов. Фото что такое скрапинг веб сайтов

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

Интеграция облачных сервисов

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

Но это станет раздражать и будет неэффективно, поэтому лучше, если бы вы могли просто загрузить скрипт на сервер, и он выполнял код регулярно в зависимости от настроек.

Это можно сделать, запустив фактический сервер и настроив правила, когда выполнять скрипт. В других случаях, облачная функция более простой способ.

Облачные функции — это хранилища, предназначенные для выполнения загруженного кода при возникновении события. Это означает, что вам не нужно управлять серверами, это делается автоматически выбранным вами облачным провайдером.

Триггером может быть расписание, сетевой запрос и множество других событий. Вы можете сохранить собранные данные в базе данных, записать их в Google sheet или отправить по электронной почте. Все зависит от вашей фантазии.

Если вы используете Puppeteer, облачные функции Google — самое простое решение. Размер пакета в формате Headless Chrome (

130 МБ) превышает максимально допустимый размер архива в AWS Lambda (50 МБ). Есть несколько методов, чтобы заставить его работать с Lambda, но функции GCP по умолчанию поддерживают Chrome без заголовка, вам просто нужно включить Puppeteer в качестве зависимости в package.json.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *