В последние 3-5 лет всплеск активности в области веб-парсинга привел к появлению разнообразных API, предоставляемых прокси-сервисами и компаниями, занимающимися сбором данных. В этом обзоре рассматриваются семь ведущих поставщиков API для веб-парсинга, анализируются их функции, возможности парсинга, эффективность парсинга и экономическая эффективность.
Сосредоточившись на трех ключевых категориях веб-сайтов — поисковых системах, платформах электронной коммерции и социальных сетях, — мы стремимся дать представление о развивающейся сфере API для веб-парсинга.
Эволюция API для веб-парсинга (парсинга данных)
API для веб-парсинга действуют как удаленные веб-парсеры, принимающие API-запросы с целевыми URL и необязательными параметрами.
За кулисами эти API используют прокси, заголовки и даже безголовые браузеры для получения HTML-контента. Некоторые продвинутые API используют искусственное зрение и распознавание образов для выполнения сложных задач.
Модели ценообразования часто основаны на успешных запросах, что обеспечивает предсказуемость. Однако некоторые провайдеры демонстрируют непрозрачную структуру ценообразования.
Основные сведения
➡️ Вывод и обработка данных:
Шесть из семи API возвращают необработанный HTML, при этом для определенных веб-сайтов доступны расширенные парсеры.
Google и Amazon — самые целевые сайты, а Oxylabs предлагает модель машинного обучения для парсинга большинства магазинов электронной коммерции.
➡️ Передача данных и настройка:
API передают данные по открытым соединениям, часто выступая в качестве прокси-серверов для беспрепятственной интеграции.
Возможности настройки включают выбор местоположения, спецификацию устройства и пользовательские заголовки.
Четыре API принимают селекторы CSS, а три поддерживают взаимодействие с браузером для сценариев динамического парсинга.
➡️ Производительность и надежность:
Тесты производительности показывают различную скорость, при этом некоторые API превосходят по скорости парсинг Google и Amazon.
Социальные сети, особенно GraphQL, оказались сложными для многих API.
Oxylabs, Smartproxy и Bright Data оказались самыми надежными, обладая надежными парсерами.
➡️ Модели ценообразования:
Bright Data взимает единую цену за все функции, в то время как Oxylabs и Smartproxy дифференцируют цены по целевым группам.
ScraperAPI и Zyte используют многоуровневое ценообразование, причем цены существенно различаются в зависимости от целевого сайта.
Обзор участников
Мы обратились к семи известным компаниям, предлагающим API для веб-парсинга, включая известные имена и прокси-провайдеров, только начинающих работать в этой области.
Участники с готовностью предоставили доступ к своим API для парсинга сайтов Google, Amazon и социальных сетей.
Обзор участников
API
Протестированные API
Стартовая цена
Oxylabs
Web Scraper API, SERP Scraper API, E-Commerce Scraper API
$99
Bright Data
Web Unlocker, SERP API
$3 (оплата по факту), $500 (план)
Smartproxy
Web Scraping API, SERP Scraping API, E-Commerce Scraping API
$50
Zyte
API Zyte
$0 (оплата по факту), $25 (план)
Rayobyte
Робот-парсер
$0.0018/запрос
ScraperAPI
ScraperAPI
$49
Shifter
Web Scraping API, SERP API
$44.95
Обзор функций
Методы интеграции
Теоретически все API для веб-парсинга используют одну и ту же базовую структуру: есть конечная точка, в которую вы передаете URL-адреса, которые хотите парсить, с одним или несколькими параметрами.
На практике реализация может существенно отличаться. Вот четыре основных метода, с которыми мы сталкивались:
Провайдер
API (открытое соединение)
API (асинхронный)
Прокси
Библиотека/SDK
Oxylabs
✅ Открытое соединение, при котором вы отправляете запросы и ждете ответа.
✅ Позволяет осуществлять асинхронную доставку для массового парсинга.
✅ Может интегрироваться в качестве прокси.
❌ Нет специализированной библиотеки или SDK.
Bright Data
❌ Нет открытого метода подключения.
✅ Поддерживает асинхронную доставку.
✅ Может интегрироваться в качестве прокси.
❌ Нет специализированной библиотеки или SDK.
Smartproxy
✅ Доступен метод открытого соединения.
❌ Не поддерживает асинхронную доставку.
✅ Может интегрироваться в качестве прокси.
❌ Нет специализированной библиотеки или SDK.
Zyte
✅ Открывает соединение для запросов.
❌ Не поддерживает асинхронную доставку.
❌ Может использоваться в качестве прокси.
✅ Предоставляет библиотеку/SDK.
Rayobyte
✅ Открывает соединение для запросов.
❌ Не поддерживает асинхронную доставку.
❌ Может использоваться в качестве прокси.
❌ Нет специализированной библиотеки или SDK.
ScraperAPI
✅ Метод открытого соединения.
✅ Поддерживает асинхронную доставку.
✅ Может интегрироваться в качестве прокси.
✅ Предоставляет библиотеку/SDK.
Shifter
✅ Открывает соединение для запросов.
❌ Не поддерживает асинхронную доставку.
❌ Может использоваться в качестве прокси.
✅ Предоставляет библиотеку/SDK.
API (открытое соединение): Открытое соединение означает отправку запросов к конечной точке API и ожидание ответа. Используются методы GET и POST с различными вариантами реализации.
API (асинхронное соединение): Асинхронная доставка позволяет отправлять вызовы API с идентификатором и получать результаты через веб-хук, что полезно для массового парсинга.
Прокси: Большинство API могут интегрироваться в качестве прокси, что облегчает переход от обычных прокси-серверов.
Библиотека/SDK: Некоторые провайдеры предлагают SDK для дополнительного удобства.
Скрапинг HTML
API общего назначения имеют одну конечную точку, которая пытается парсить любой веб-сайт, возвращая страницы в сыром HTML.
Все участники предлагают API для универсального парсинга:
Провайдер
Соответствующий инструмент
Oxylabs
API веб-скребка
Bright Data
Web Unlocker
Smartproxy
API для веб-парсинга
Zyte
API Zyte
Rayobyte
Робот для парсинга
ScraperAPI
ScraperAPI
Shifter
API для веб-парсинга
Такие параметры, как геолокация, жилые прокси, тип устройства, сеансы, куки и ввод данных, являются общими для всех API.
Безголовый парсинг
Безголовый парсинг очень важен для преодоления систем защиты веб-сайтов.
Большинство провайдеров управляют безголовыми браузерами для вас:
Провайдер
Рендеринг JavaScript
Скриншоты
Действия браузера
Oxylabs
✅ Рендеринг JavaScript доступен повсеместно.
✅ Поддерживает создание скриншотов.
❌ Не поддерживает прямое взаимодействие с браузером.
Яркие данные
✅ JavaScript обрабатывается автоматически.
❌ Не поддерживает создание скриншотов.
❌ Не поддерживает прямое взаимодействие с браузером.
Smartproxy
✅ Рендеринг JavaScript доступен повсеместно.
✅ Поддерживает создание скриншотов.
❌ Не поддерживает прямое взаимодействие с браузером.
Zyte
✅ Рендеринг JavaScript доступен повсеместно.
✅ Поддерживает создание скриншотов.
✅ Позволяет прямое взаимодействие с браузером.
Rayobyte
✅ Рендеринг JavaScript доступен повсеместно.
✅ Поддерживает создание скриншотов.
✅ Позволяет напрямую взаимодействовать с браузером.
ScraperAPI
✅ Рендеринг JavaScript доступен повсеместно.
❌ Не поддерживает создание скриншотов.
❌ Не поддерживает прямое взаимодействие с браузером.
Перевертыш
✅ Рендеринг JavaScript доступен повсеместно.
✅ Поддерживает создание скриншотов.
✅ Позволяет осуществлять расширенное взаимодействие с браузером.
Рендеринг JavaScript доступен повсеместно, а некоторые провайдеры позволяют взаимодействовать с браузером, например, щелкать и прокручивать.
Специализированные API
Специализированные API предназначены для определенных групп веб-сайтов, обеспечивают совместимость и структурированный парсинг:
Провайдер
API для поисковых систем
API для электронной коммерции
API для социальных сетей
Oxylabs
Google, Baidu, Bing, Yandex
Amazon, Walmart, eBay, Wayfair и др
❌
Bright Data
Google, Bing, DuckDuckGo, Яндекс
❌
❌
Smartproxy
Google, Baidu, Bing, Яндекс
Amazon, Idealo, Wayfair
❌
Zyte
❌ Нет специализированных API для поисковых систем.
❌ Нет специализированного API для электронной коммерции.
❌
Rayobyte
Google
Amazon
❌
ScraperAPI
❌ Нет специализированного API для поисковых систем.
❌ Нет специализированного API для электронной коммерции.
❌
Перевертыш
Google, Bing, Yandex
❌
❌
Поисковые системы и сайты электронной коммерции — обычные мишени, причем наибольшее внимание уделяется Google и Amazon.
Возможности парсинга у разных провайдеров различны. Некоторые предлагают специализированные API со встроенными парсерами, другие — селекторы для ручного парсинга. В целом возможности парсинга выглядят следующим образом:
❌ Не поддерживает специализированный парсинг электронной коммерции.
Smartproxy
❌ Не поддерживает ручной парсинг.
Google
Amazon
Zyte
CSS-селекторы
❌ Не поддерживает специализированный парсинг поисковых систем.
❌ Не поддерживает специализированный парсинг электронной коммерции.
Rayobyte
Селекторы CSS, XPath
Google
❌ Не поддерживает специализированный парсинг электронной коммерции.
ScraperAPI
❌ Не поддерживает ручной парсинг.
Google
Amazon
Shifter
CSS-селекторы
Google, Bing, Yandex
❌ Не поддерживает специализированный парсинг.
Распространены готовые парсеры для Google, а ручной парсинг предлагают несколько провайдеров. Специализированные парсеры для Amazon доступны, а Oxylabs поддерживает цели, выходящие за рамки Amazon.
Парсинг Google
Парсинг Google
Oxylabs
Bright Data
Smartproxy
Rayobyte
ScraperAPI
Shifter
Форматы данных
JSON, CSV
JSON
JSON
JSON
JSON
JSON
Разбираемые элементы
SERP
✅ Поддерживает парсинг страницы результатов поисковой системы (SERP).
Контрольные показатели производительности API для веб-парсинга
Для комплексной оценки API веб-парсинга был использован собственный Python-скрипт, использующий библиотеки Asyncio и AIOHTTP для асинхронных запросов с тайм-аутом 150 секунд.
Основное внимание было уделено оценке Google, Amazon и социальной медиаплатформы, ориентированной на фотографии, в различных сценариях.
import asyncio
import aiohttp
from aiohttp import ClientSession
async def fetch_data(session: ClientSession, url: str, timeout: int = 150) -> dict:
try:
async with session.get(url, timeout=timeout) as response:
return await response.json()
except aiohttp.ClientError as e:
print(f"Error fetching data from {url}: {e}")
return {}
async def scrape_google():
google_url = "https://www.google.com"
async with aiohttp.ClientSession() as session:
google_data = await fetch_data(session, google_url)
print("Google Data:", google_data)
async def scrape_amazon():
amazon_url = "https://www.amazon.com"
async with aiohttp.ClientSession() as session:
amazon_data = await fetch_data(session, amazon_url)
print("Amazon Data:", amazon_data)
async def main():
tasks = [
scrape_google(),
scrape_amazon(),
]
await asyncio.gather(*tasks)
if __name__ == "__main__":
asyncio.run(main())
Google
Разобранные результаты
Провайдер
Скорость успеха
Среднее Время отклика (с)
Oxylabs
100%
6.04
Bright Data
98.42%
4.62
Smartproxy
100%
6.09
Zyte
99.47%
4.72
Райобайт
100%
6.53
ScraperAPI
94.10%
12.58
Перевертыш
81.76%
1.67
Большинство API показали хорошие результаты, но есть и заметные исключения. парсер общего назначения Shifter столкнулся с проблемами при работе с Google, в результате чего каждый пятый запрос выдавал ошибку обнаружения 429. Специализированный API повысил производительность, но скорость работы снизилась.
Результаты парсинга
Провайдер
Коэффициент успеха
Средн. Время отклика (с)
Oxylabs
99.90%
6.15
Bright Data
99.71%
6.03
Smartproxy
99.85%
6.04
Zyte
—
10.03
Райобайт
99.93%
13.24
ScraperAPI
96.88%
10.08
Перевертыш
96.65%
—
Использование парсера данных оказало минимальное влияние на время отклика, за исключением Rayobyte, у которого по необъяснимым причинам наблюдалась трехсекундная задержка результатов в формате JSON.
Amazon
Провайдер
Показатель успешности
Среднее Время отклика (с)
Oxylabs
100%
4.69
Bright Data
98.42%
4.31
Smartproxy
100%
4.66
Zyte
85.50%
4.51
Райобайт
95.60%
20.70
ScraperAPI
95.80%
9.69
Перевертыш
98.80%
5.35
Bright Data, Oxylabs и Smartproxy неизменно показывали отличные результаты. Медленный отклик Rayobyte объясняется тем, что для Amazon по умолчанию используются IP-адреса центров обработки данных, что требует многократных повторов запросов. Zyte столкнулся с 520 ошибками, а ScraperAPI повторял показатели Google. Shifter показал хорошие результаты, но его парсер столкнулся с проблемами.
Конечная точка GraphQL
Провайдер
Коэффициент успеха
Среднее Время отклика (с)
Oxylabs
100%
17.89
Bright Data
73.40%
3.71
Smartproxy
100%
8.95
Zyte
98.40%
2.59
Райобайт
80%
4.52
ScraperAPI*
24.80%
8.08
Перевертыш
54.80%
1.77
Конечная точка GraphQL представляла собой серьезную проблему, и Shifter справился с ней даже с включенным рендерингом. ScraperAPI столкнулся с трудностями, а Zyte отличился достойной производительностью.
Рендеринг без головы
Провайдер
Показатель успеха
Среднее Время отклика (с)
Oxylabs
100%
28.88
Bright Data
100%
4.10
Smartproxy
100%
29.09
Zyte
94.00%
28.14
Райобайт
98.60%
23.05
ScraperAPI*
98.20%
16.05
Перевертыш
62.40%
4.42
Тест без головы оказался более щадящим, и Bright Data продемонстрировала превосходные результаты. Shifter был быстр, но сталкивался с ошибками. ScraperAPI улучшил производительность, а Oxylabs и Smartproxy сохранили показатели успешности за счет некоторого снижения скорости.
Concurrency
Провайдер
Concurrency
Oxylabs
от 5 запросов/с до неограниченного количества
Bright Data
Безлимитный
Smartproxy
Неопределенный
Zyte
2 запрос/с
Rayobyte
100 запросов/мин
ScraperAPI
200-400 нитей
Перевертыш
Не определено
Конкуренция варьировалась: Bright Data, Smartproxy и Oxylabs допускали большое количество параллельных запросов. Rayobyte и Zyte имели более строгие ограничения по умолчанию, в основном применимые к потребностям корпоративного уровня.
Оценка возможностей парсинга в API для веб-парсинга
Для более детального изучения API веб-парсинга был проведен качественный тест, в ходе которого оценивались возможности парсинга на четырех разных типах страниц: локализованный запрос Google для настольных компьютеров, локализованный запрос Google для мобильных устройств, запрос Google Shopping и страницы товаров Amazon.
Google SERP, локализованный запрос для настольных компьютеров
Для локализованного десктопного запроса «лучший парикмахер рядом со мной» в Лондоне API были оценены по различным параметрам:
Провайдер
Локализованный
Органический
Пакет закусок
Карта
Связанные поиски
Люди также спрашивают
Oxylabs
✅
✅
✅
❌
✅
✅
Яркие данные
✅
✅
✅
✅
✅
✅
Smartproxy
✅
✅
✅
❌
✅
✅
Rayobyte
✅
✅
✅
❌
✅
✅
ScraperAPI
✅
✅
❌
❌
✅
✅
Перевертыш
❌
✅
✅
❌
✅
✅
В то время как ScraperAPI и Rayobyte сосредоточились на основной информации, другие нацелены на разбор всего SERP.
Примечательно, что Bright Data даже предоставила скриншот карты. Shifter столкнулся с проблемами с параметром местоположения, что мешало поиску локальных результатов.
Google SERP, локализованный мобильный запрос
Мобильный запрос с теми же параметрами, что и десктопный, дал следующие результаты:
Провайдер
Локализованный
Organic
Пакет закусок
Карта
Связанные поиски
Люди также спрашивают
Oxylabs
✅
✅
✅
❌
✅
✅
Яркие данные
✅
✅
✅
✅
✅
✅
Smartproxy
✅
✅
✅
❌
✅
✅
Rayobyte
✅
✅
✅
❌
✅
✅
ScraperAPI
✅
✅
❌
❌
✅
✅
Перевертыш
❌
✅
✅
❌
✅
✅
Bright Data, Oxylabs и Smartproxy успешно вернули полные и точные результаты. Однако ScraperAPI не смог ничего соскоблить, а мобильный парсер Shifter перешел на элементы главной страницы, пропустив локальные данные.
Google Покупки
Запрос Google Shopping по запросу «Nike Air Max» в Лондоне был проанализирован на предмет различных аспектов:
Провайдер
Локализованный
Фильтры поиска
Объявления
Товар
Ценообразование
Торговец
Доставка
Оценка
Другие
Oxylabs
✅
✅
❌
✅
✅
✅
❌
✅
Яркие данные
❌
❌
❌
✅
✅
✅
✅
✅
Сравнение цен
Smartproxy
✅
✅
❌
✅
✅
❌
✅
✅
ScraperAPI
✅
❌
✅
✅
✅
✅
✅
✅
Фильтр по материалу, сопутствующие поиски, сравнение цен
Перевертыш
❌
❌
✅
✅
✅
✅
❌
✅
ScraperAPI предоставил наиболее полные результаты, включая связанные поиски и блок «Вам может понравиться». Он успешно извлекал рекламные результаты, что отсутствовало у других провайдеров. Bright Data и Shifter не смогли локализовать страницу для этого конкретного запроса.
Страницы товаров Amazon
Для парсинга были выбраны различные страницы с товарами для творчества, кухонной утварью и электроникой. Оценка включала такие элементы, как хлебные крошки, детали товара, изображения, цены, информация о продавце, наличие, рейтинг бестселлеров, доставка, оценка и гарантия.
Поставщик
Хлебные крошки
Товар
Изображения
Разновидности товара
Ценообразование
Торговец
Доступность
Рейтинг бестселлеров
Доставка
Оценка
Гарантия
Oxylabs
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
Smartproxy
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
Rayobyte
✅
✅
✅
❌
✅
✅
❌
✅
❌
✅
❌
ScraperAPI
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
❌
Все четыре API продемонстрировали способность анализировать большинство элементов страницы. Oxylabs и Smartproxy предоставили наиболее полные результаты, включая информацию о скидках, доставке и гарантии. Парсер Rayobyte оказался менее информативным, исключив информацию о вариантах товара, доставке и гарантии. Shifter решил исключить данные о коробке с товаром и допустил несколько ошибок форматирования.
Таким образом, этот качественный тест выявил различные возможности парсинга в API веб-парсинга, проливая свет на их сильные и слабые стороны для различных типов веб-страниц.
Модели ценообразования
API-интерфейсы веб-парсинга в основном используют структуру ценообразования, ориентированную на успешные запросы, что упрощает расчет расходов. Провайдеры обычно выставляют счет на основе количества успешных запросов, что позволяет пользователям легко оценить расходы. Стандартной метрикой для сравнения является CPM (стоимость за 1 000 запросов).
Провайдер
Модель ценообразования
Структура
Стартовая цена
Пробная
Oxylabs
Подписка
Успешные запросы
$99
5 000 запросов за неделю
Bright Data
Оплата по мере поступления, подписка
Успешные запросы
$3 (оплата по факту), $500 (план)
7 дней для компаний
Smartproxy
Подписка
Успешные запросы
$50
3 000 запросов на 3 дня
Zyte
Оплата по мере выполнения, подписка
Успешные запросы
$0 (оплата по факту), $25 (план)
$5 бесплатный кредит
Rayobyte
Оплата по мере поступления
Успешные запросы
$0,0018/запрос
5 000 бесплатных запросов в месяц (продлевается)
ScraperAPI
Подписка
Успешные запросы
$49
5 000 кредитов на неделю
Shifter
Подписка
Успешные запросы
$44
Гарантия возврата денег
Доминирующей моделью ценообразования остается ежемесячная подписка, но существуют и вариации. Zyte предлагает интригующий подход, при котором пользователи устанавливают месячный лимит и платят половину аванса каждый месяц. Примечательно, что большинство провайдеров предлагают пробные версии со стандартным предложением в 5 000 запросов.
Расчет стоимости запроса
Хотя модель ценообразования кажется простой, некоторые API для веб-парсинга создают сложности при расчете стоимости запроса.
Такие факторы, как целевой веб-сайт, рендеринг JavaScript, прокси-серверы в жилых помещениях и другие, вносят свой вклад в изменение цены, что приводит к значительным колебаниям стоимости.
Провайдер
Модификаторы цены
Максимальная разница в цене
Oxylabs
Поисковые системы, веб-сайты электронной коммерции
x2-3
Яркие данные
—
x1
Smartproxy
Поисковые системы, сайты электронной коммерции
x1.5-3
Zyte
Таргет, JS-рендеринг, премиум-прокси, скриншоты, действия браузера
ScraperAPI отличается сложной структурой, включающей три уровня прокси-сетей и JavaScript-рендеринга.
Цены варьируются в зависимости от таких факторов, как использование жилых прокси, безголовый парсинг и тарифы для конкретных сайтов, таких как Google, Amazon и социальные сети.
Oxylabs и Smartproxy применяют дифференцированный подход: более высокая стоимость для парсеров поисковых систем и примерно вдвое выше для парсеров электронной коммерции.
Shifter придерживается аналогичной стратегии для поисковых систем, в то время как его обычный парсер соответствует структуре ScraperAPI.
Bright Data и Rayobyte поддерживают единые цены независимо от того, используют ли они пользовательские парсеры или рендеринг JavaScript, что упрощает процесс парсинга сложных целей.
Zyte, с другой стороны, динамически рассчитывает цену за запрос для каждого сайта, учитывая его сложность, рендеринг JavaScript, скриншоты и действия браузера. Такой динамический подход не позволяет заранее оценить расходы.
Заключение
Ландшафт API для веб-парсинга динамично развивается, предлагая различные возможности и структуры цен.
Ключевыми моментами являются эволюция расширенных функций, ориентация на крупные веб-сайты, такие как Google и Amazon, и важность возможностей парсинга.
Производительность и надежность варьируются, при этом Oxylabs, Smartproxy и Bright Data являются надежными исполнителями.
Модели ценообразования, как правило, основаны на успешных запросах, но некоторые поставщики усложняют ситуацию, устанавливая дифференцированные цены.
Организациям следует тщательно оценить свои потребности и бюджетные ограничения при выборе API для веб-парсинга, учитывая такие факторы, как выход данных, настройка и возможности парсинга. Постоянный мониторинг очень важен в этой конкурентной и развивающейся экосистеме.
Часто задаваемые вопросы
Как API для веб-парсинга регулируют цены?
API для веб-парсинга обычно используют модель ценообразования, основанную на успешных запросах. Пользователи платят за количество успешно выполненных запросов. Некоторые поставщики вводят дополнительные сложности, например дифференцированные цены для определенных веб-сайтов или функций.
Какие ключевые особенности следует учитывать при оценке API для веб-парсинга?
К важным характеристикам относятся формат вывода данных, возможности настройки (например, выбор местоположения, спецификация устройства), возможности парсинга, а также производительность/надежность. Также важно учитывать целевые веб-сайты и способность обрабатывать динамический контент и JavaScript.
Каковы некоторые проблемы, связанные с веб-парсингом, и как их можно решить?
К числу проблем относятся обработка динамического контента, CAPTCHA и изменения в структуре сайта. Чтобы решить эти проблемы, выбирайте API для веб-парсинга с надежными возможностями разбора и поддержкой рендеринга JavaScript, а также рассмотрите возможность применения таких методов, как ротация прокси-серверов и агентов пользователя, чтобы избежать обнаружения. Регулярно отслеживайте и адаптируйте свою стратегию парсинга по мере развития веб-сайтов.
Как парсить сайты через API: обзор на 7 сервисов
В последние 3-5 лет всплеск активности в области веб-парсинга привел к появлению разнообразных API, предоставляемых прокси-сервисами и компаниями, занимающимися сбором данных. В этом обзоре рассматриваются семь ведущих поставщиков API для веб-парсинга, анализируются их функции, возможности парсинга, эффективность парсинга и экономическая эффективность.
Сосредоточившись на трех ключевых категориях веб-сайтов — поисковых системах, платформах электронной коммерции и социальных сетях, — мы стремимся дать представление о развивающейся сфере API для веб-парсинга.
Эволюция API для веб-парсинга (парсинга данных)
API для веб-парсинга действуют как удаленные веб-парсеры, принимающие API-запросы с целевыми URL и необязательными параметрами.
За кулисами эти API используют прокси, заголовки и даже безголовые браузеры для получения HTML-контента. Некоторые продвинутые API используют искусственное зрение и распознавание образов для выполнения сложных задач.
Модели ценообразования часто основаны на успешных запросах, что обеспечивает предсказуемость. Однако некоторые провайдеры демонстрируют непрозрачную структуру ценообразования.
Основные сведения
➡️ Вывод и обработка данных:
➡️ Передача данных и настройка:
➡️ Производительность и надежность:
➡️ Модели ценообразования:
Обзор участников
Мы обратились к семи известным компаниям, предлагающим API для веб-парсинга, включая известные имена и прокси-провайдеров, только начинающих работать в этой области.
Участники с готовностью предоставили доступ к своим API для парсинга сайтов Google, Amazon и социальных сетей.
Обзор участников
Обзор функций
Методы интеграции
Теоретически все API для веб-парсинга используют одну и ту же базовую структуру: есть конечная точка, в которую вы передаете URL-адреса, которые хотите парсить, с одним или несколькими параметрами.
На практике реализация может существенно отличаться. Вот четыре основных метода, с которыми мы сталкивались:
Скрапинг HTML
API общего назначения имеют одну конечную точку, которая пытается парсить любой веб-сайт, возвращая страницы в сыром HTML.
Все участники предлагают API для универсального парсинга:
Такие параметры, как геолокация, жилые прокси, тип устройства, сеансы, куки и ввод данных, являются общими для всех API.
Безголовый парсинг
Безголовый парсинг очень важен для преодоления систем защиты веб-сайтов.
Большинство провайдеров управляют безголовыми браузерами для вас:
Рендеринг JavaScript доступен повсеместно, а некоторые провайдеры позволяют взаимодействовать с браузером, например, щелкать и прокручивать.
Специализированные API
Специализированные API предназначены для определенных групп веб-сайтов, обеспечивают совместимость и структурированный парсинг:
Поисковые системы и сайты электронной коммерции — обычные мишени, причем наибольшее внимание уделяется Google и Amazon.
Особенности Google
Особенности Amazon
Парсинг данных
Возможности парсинга у разных провайдеров различны. Некоторые предлагают специализированные API со встроенными парсерами, другие — селекторы для ручного парсинга. В целом возможности парсинга выглядят следующим образом:
Распространены готовые парсеры для Google, а ручной парсинг предлагают несколько провайдеров. Специализированные парсеры для Amazon доступны, а Oxylabs поддерживает цели, выходящие за рамки Amazon.
Парсинг Google
Парсинг Amazon
Контрольные показатели производительности API для веб-парсинга
Для комплексной оценки API веб-парсинга был использован собственный Python-скрипт, использующий библиотеки Asyncio и AIOHTTP для асинхронных запросов с тайм-аутом 150 секунд.
Основное внимание было уделено оценке Google, Amazon и социальной медиаплатформы, ориентированной на фотографии, в различных сценариях.
Google
Разобранные результаты
Большинство API показали хорошие результаты, но есть и заметные исключения. парсер общего назначения Shifter столкнулся с проблемами при работе с Google, в результате чего каждый пятый запрос выдавал ошибку обнаружения 429. Специализированный API повысил производительность, но скорость работы снизилась.
Результаты парсинга
Использование парсера данных оказало минимальное влияние на время отклика, за исключением Rayobyte, у которого по необъяснимым причинам наблюдалась трехсекундная задержка результатов в формате JSON.
Amazon
Bright Data, Oxylabs и Smartproxy неизменно показывали отличные результаты. Медленный отклик Rayobyte объясняется тем, что для Amazon по умолчанию используются IP-адреса центров обработки данных, что требует многократных повторов запросов. Zyte столкнулся с 520 ошибками, а ScraperAPI повторял показатели Google. Shifter показал хорошие результаты, но его парсер столкнулся с проблемами.
Конечная точка GraphQL
Конечная точка GraphQL представляла собой серьезную проблему, и Shifter справился с ней даже с включенным рендерингом. ScraperAPI столкнулся с трудностями, а Zyte отличился достойной производительностью.
Рендеринг без головы
Тест без головы оказался более щадящим, и Bright Data продемонстрировала превосходные результаты. Shifter был быстр, но сталкивался с ошибками. ScraperAPI улучшил производительность, а Oxylabs и Smartproxy сохранили показатели успешности за счет некоторого снижения скорости.
Concurrency
Конкуренция варьировалась: Bright Data, Smartproxy и Oxylabs допускали большое количество параллельных запросов. Rayobyte и Zyte имели более строгие ограничения по умолчанию, в основном применимые к потребностям корпоративного уровня.
Оценка возможностей парсинга в API для веб-парсинга
Для более детального изучения API веб-парсинга был проведен качественный тест, в ходе которого оценивались возможности парсинга на четырех разных типах страниц: локализованный запрос Google для настольных компьютеров, локализованный запрос Google для мобильных устройств, запрос Google Shopping и страницы товаров Amazon.
Google SERP, локализованный запрос для настольных компьютеров
Для локализованного десктопного запроса «лучший парикмахер рядом со мной» в Лондоне API были оценены по различным параметрам:
В то время как ScraperAPI и Rayobyte сосредоточились на основной информации, другие нацелены на разбор всего SERP.
Примечательно, что Bright Data даже предоставила скриншот карты. Shifter столкнулся с проблемами с параметром местоположения, что мешало поиску локальных результатов.
Google SERP, локализованный мобильный запрос
Мобильный запрос с теми же параметрами, что и десктопный, дал следующие результаты:
Bright Data, Oxylabs и Smartproxy успешно вернули полные и точные результаты. Однако ScraperAPI не смог ничего соскоблить, а мобильный парсер Shifter перешел на элементы главной страницы, пропустив локальные данные.
Google Покупки
Запрос Google Shopping по запросу «Nike Air Max» в Лондоне был проанализирован на предмет различных аспектов:
ScraperAPI предоставил наиболее полные результаты, включая связанные поиски и блок «Вам может понравиться». Он успешно извлекал рекламные результаты, что отсутствовало у других провайдеров. Bright Data и Shifter не смогли локализовать страницу для этого конкретного запроса.
Страницы товаров Amazon
Для парсинга были выбраны различные страницы с товарами для творчества, кухонной утварью и электроникой. Оценка включала такие элементы, как хлебные крошки, детали товара, изображения, цены, информация о продавце, наличие, рейтинг бестселлеров, доставка, оценка и гарантия.
Все четыре API продемонстрировали способность анализировать большинство элементов страницы. Oxylabs и Smartproxy предоставили наиболее полные результаты, включая информацию о скидках, доставке и гарантии. Парсер Rayobyte оказался менее информативным, исключив информацию о вариантах товара, доставке и гарантии. Shifter решил исключить данные о коробке с товаром и допустил несколько ошибок форматирования.
Таким образом, этот качественный тест выявил различные возможности парсинга в API веб-парсинга, проливая свет на их сильные и слабые стороны для различных типов веб-страниц.
Модели ценообразования
API-интерфейсы веб-парсинга в основном используют структуру ценообразования, ориентированную на успешные запросы, что упрощает расчет расходов. Провайдеры обычно выставляют счет на основе количества успешных запросов, что позволяет пользователям легко оценить расходы. Стандартной метрикой для сравнения является CPM (стоимость за 1 000 запросов).
Доминирующей моделью ценообразования остается ежемесячная подписка, но существуют и вариации. Zyte предлагает интригующий подход, при котором пользователи устанавливают месячный лимит и платят половину аванса каждый месяц. Примечательно, что большинство провайдеров предлагают пробные версии со стандартным предложением в 5 000 запросов.
Расчет стоимости запроса
Хотя модель ценообразования кажется простой, некоторые API для веб-парсинга создают сложности при расчете стоимости запроса.
Такие факторы, как целевой веб-сайт, рендеринг JavaScript, прокси-серверы в жилых помещениях и другие, вносят свой вклад в изменение цены, что приводит к значительным колебаниям стоимости.
ScraperAPI отличается сложной структурой, включающей три уровня прокси-сетей и JavaScript-рендеринга.
Цены варьируются в зависимости от таких факторов, как использование жилых прокси, безголовый парсинг и тарифы для конкретных сайтов, таких как Google, Amazon и социальные сети.
Oxylabs и Smartproxy применяют дифференцированный подход: более высокая стоимость для парсеров поисковых систем и примерно вдвое выше для парсеров электронной коммерции.
Shifter придерживается аналогичной стратегии для поисковых систем, в то время как его обычный парсер соответствует структуре ScraperAPI.
Bright Data и Rayobyte поддерживают единые цены независимо от того, используют ли они пользовательские парсеры или рендеринг JavaScript, что упрощает процесс парсинга сложных целей.
Zyte, с другой стороны, динамически рассчитывает цену за запрос для каждого сайта, учитывая его сложность, рендеринг JavaScript, скриншоты и действия браузера. Такой динамический подход не позволяет заранее оценить расходы.
Заключение
Ландшафт API для веб-парсинга динамично развивается, предлагая различные возможности и структуры цен.
Ключевыми моментами являются эволюция расширенных функций, ориентация на крупные веб-сайты, такие как Google и Amazon, и важность возможностей парсинга.
Производительность и надежность варьируются, при этом Oxylabs, Smartproxy и Bright Data являются надежными исполнителями.
Модели ценообразования, как правило, основаны на успешных запросах, но некоторые поставщики усложняют ситуацию, устанавливая дифференцированные цены.
Организациям следует тщательно оценить свои потребности и бюджетные ограничения при выборе API для веб-парсинга, учитывая такие факторы, как выход данных, настройка и возможности парсинга. Постоянный мониторинг очень важен в этой конкурентной и развивающейся экосистеме.
Часто задаваемые вопросы
Как API для веб-парсинга регулируют цены?
API для веб-парсинга обычно используют модель ценообразования, основанную на успешных запросах. Пользователи платят за количество успешно выполненных запросов. Некоторые поставщики вводят дополнительные сложности, например дифференцированные цены для определенных веб-сайтов или функций.
Какие ключевые особенности следует учитывать при оценке API для веб-парсинга?
К важным характеристикам относятся формат вывода данных, возможности настройки (например, выбор местоположения, спецификация устройства), возможности парсинга, а также производительность/надежность. Также важно учитывать целевые веб-сайты и способность обрабатывать динамический контент и JavaScript.
Каковы некоторые проблемы, связанные с веб-парсингом, и как их можно решить?
К числу проблем относятся обработка динамического контента, CAPTCHA и изменения в структуре сайта. Чтобы решить эти проблемы, выбирайте API для веб-парсинга с надежными возможностями разбора и поддержкой рендеринга JavaScript, а также рассмотрите возможность применения таких методов, как ротация прокси-серверов и агентов пользователя, чтобы избежать обнаружения. Регулярно отслеживайте и адаптируйте свою стратегию парсинга по мере развития веб-сайтов.
Переведено с сайта Webscraping.blog