Как скрапить цены Google Shopping в 2026 году: практическое руководство

Подробное руководство по сбору цен и данных товаров из Google Shopping с использованием резидентных прокси. Разбор API против HTML-парсинга, селекторов, антибот-защиты и примеров кода на Python.

How to Scrape Google Shopping Prices in 2026: A Practical Guide
В этой статье

Как скрапить цены Google Shopping в 2026 году: с чего начать

Если вы занимаетесь конкурентным анализом цен, вам нужна не ваша собственная витрина, а то, что видят покупатели у конкурентов. Именно здесь возникает главный компромисс: Content API for Shopping от Google обслуживает только товары вашего собственного мерчант-аккаунта — он не покажет цены конкурентов. Для получения рыночных данных приходится парсить HTML-страницы SERP с параметром tbm=shop или карточки товаров по адресу /shopping/product/.

В этом руководстве мы разберём, как скрапить цены Google Shopping в 2026 году: от URL-паттернов и CSS-селекторов до обхода антибот-защиты с помощью резидентных прокси. Материал ориентирован на аналитиков цен и инженеров конкурентной разведки.

API против HTML: почему Content API не подходит для конкурентного анализа

Google предлагает несколько официальных API для работы с торговыми данными:

  • Content API for Shopping — управляет товарами вашего мерчант-центра: загрузка фидов, управление ценами, статусами одобрения. Доступ только к вашим данным.
  • Shopping Insights — агрегированные тренды популярности, без конкретных цен по продавцам.
  • Custom Search JSON API — может возвращать результаты поиска, но без детализации Shopping-панелей и с лимитом 100 запросов в день на бесплатном уровне.

Ни один из этих API не даёт того, что нужно ценовому аналитику: список продавцов, актуальные цены и рейтинги по конкретному товару в нужном регионе. Поэтому единственный практический путь — парсинг HTML-страниц Google Shopping. Подробнее об ограничениях Content API можно прочитать в официальной документации Google.

Антибот-стек Google: что блокирует скрапинг

Google располагает одной из самых агрессивных систем защиты от автоматизированного доступа. Вот что вам предстоит преодолеть:

reCAPTCHA и Challenge-страницы

При подозрительной активности Google перенаправляет запрос на страницу google.com/sorry/index с reCAPTCHA. Это первый сигнал, что ваш IP помечен как бот. Если проигнорировать — следующий шаг полный бан IP-диапазона.

Per-IP rate limits

Google применяет жёсткие ограничения по частоте запросов с одного IP. Точные пороги не публикуются, но из практического опыта: при 15–20 запросах в минуту с одного datacenter IP блокировка наступает в течение 2–5 минут. Резидентные IP выдерживают больше — до 60–80 запросов в минуту на IP, но всё зависит от паттерна доступа.

Поведенческий анализ

Google анализирует заголовки, TLS-fingerprint, интервалы между запросами, cookie-историю и соответствие User-Agent реальному поведению браузера. Запросы с datacenter IP-диапазонов помечаются автоматически, даже если заголовки выглядят legitimately.

URL-паттерны и CSS-селекторы Google Shopping

Для доступа к результатам Google Shopping используется следующий URL-паттерн:

https://www.google.com/search?tbm=shop&q=QUERY&gl=REGION&hl=LANG

Где tbm=shop активирует вкладку Shopping, gl — гео-локация (например, us, de, fr), hl — язык интерфейса (en, de, fr).

Ключевые селекторы SERP-страницы

ЭлементСелекторЧто содержит
Контейнер результатов.sh-dgr__contentСписок товаров в выдаче
Карточка товара.sh-dgr__grid-itemОтдельный товар: изображение, название, цена
Цена.a8Pemb или span.a8PembТекстовая цена, например «$299.00»
Название товара.sh-n__cell__title или h3.t16o3Заголовок товара
Рейтингspan.Rsc7YbЧисловой рейтинг, например «4.5»
Продавецdiv.IFuHXd или span.sh-n__cell__merchantНазвание магазина

Карточка товара и панель продавцов

При клике на товар открывается страница /shopping/product/{product_id}, где доступны:

  • Полное описание и спецификации.
  • Список всех продавцов с ценами — панель .sh-pr__product-results.
  • Сравнение цен, доставка и доступность по регионам.
  • Отзывы и рейтинги.

Селекторы на странице товара:

.sh-pr__product-results  — контейнер списка продавцов
table.sh-osd__offer-row   — строка отдельного продавца
.sh-osd__offer-price      — цена продавца
.sh-osd__offer-merchant   — название продавца
.sh-osd__offer-link       — ссылка на магазин продавца

Локализация цен: почему нужны резидентные прокси с city-level гео

Цены в Google Shopping зависят от региона покупателя. Американский покупатель видит продавцов с ценами в USD и доставкой по США. Немецкий покупатель видит европейских продавцов с ценами в EUR и другой набор предложений. Это означает, что:

  • Параметры gl=us и hl=en в URL задают только язык и страну интерфейса.
  • Реальный IP-адрес запроса определяет, какие продавцы и цены вернёт Google.
  • Datacenter IP-адреса часто показывают «обезличенные» результаты без региональных предложений.

Для корректного сбора цен в конкретном регионе нужны резидентные прокси с гео-таргетингом по стране и городу. С ProxyHat это задаётся прямо в username:

# США, любая локация
http://user-country-US:pass@gate.proxyhat.com:8080

# Германия, Берлин
http://user-country-DE-city-berlin:pass@gate.proxyhat.com:8080

# США, Нью-Йорк, sticky-сессия
http://user-country-US-city-newyork-session-abc123:pass@gate.proxyhat.com:8080

Комбинация резидентного IP в нужном регионе с параметрами gl и hl даёт наиболее точное соответствие тому, что видит реальный покупатель. Доступные локации ProxyHat можно проверить на странице локаций.

Практический пример: парсинг Google Shopping на Python

Ниже — рабочий пример на Python с использованием requests и BeautifulSoup, проходящий через ProxyHat. Скрипт выполняет один запрос, парсит первый блок результатов и извлекает название, цену, продавца и рейтинг.

import requests
from bs4 import BeautifulSoup
import random
import time

# ProxyHat residential proxy — US geo
proxy_url = "http://user-country-US:YOUR_PASSWORD@gate.proxyhat.com:8080"
proxies = {"http": proxy_url, "https": proxy_url}

headers = {
    "User-Agent": (
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
        "AppleWebKit/537.36 (KHTML, like Gecko) "
        "Chrome/124.0.0.0 Safari/537.36"
    ),
    "Accept-Language": "en-US,en;q=0.9",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
}

query = "wireless headphones bose"
url = f"https://www.google.com/search?tbm=shop&q={query}&gl=us&hl=en"

response = requests.get(url, headers=headers, proxies=proxies, timeout=30)

# Detect soft-block
if "/sorry/" in response.url or response.status_code == 429:
    print("SOFT BLOCK detected — rotating IP and backing off")
    time.sleep(random.uniform(30, 60))
    # retry with a fresh session...
else:
    soup = BeautifulSoup(response.text, "html.parser")
    results = soup.select(".sh-dgr__content .sh-dgr__grid-item")

    for item in results[:5]:  # truncated — first 5 results
        title_el = item.select_one(".sh-n__cell__title, h3")
        price_el = item.select_one(".a8Pemb")
        seller_el = item.select_one("div.IFuHXd, span.sh-n__cell__merchant")
        rating_el = item.select_one("span.Rsc7Yb")

        print({
            "title": title_el.get_text(strip=True) if title_el else None,
            "price": price_el.get_text(strip=True) if price_el else None,
            "seller": seller_el.get_text(strip=True) if seller_el else None,
            "rating": rating_el.get_text(strip=True) if rating_el else None,
        })

    time.sleep(random.uniform(3, 7))  # randomized delay

Пример вывода (сокращённый):

{
  'title': 'Bose QuietComfort Wireless Headphones',
  'price': '$349.00',
  'seller': 'Amazon.com',
  'rating': '4.6'
}
{
  'title': 'Bose SoundLink Around-ear II',
  'price': '$229.00',
  'seller': 'Best Buy',
  'rating': '4.4'
}

Этот пример извлекает базовые данные. Для получения полного списка продавцов и цен по конкретному товару нужно перейти на страницу /shopping/product/{id} и распарсить панель .sh-pr__product-results.

Пагинация, пакетная обработка и обнаружение soft-блоков

Пагинация

Google Shopping возвращает до 60–80 результатов на страницу. Пагинация реализуется через параметр start:

https://www.google.com/search?tbm=shop&q=QUERY&gl=us&hl=en&start=0
https://www.google.com/search?tbm=shop&q=QUERY&gl=us&hl=en&start=20
https://www.google.com/search?tbm=shop&q=QUERY&gl=us&hl=en&start=40

Шаг обычно 20 результатов. Не запрашивайте страницы подряд — добавляйте случайные задержки 3–8 секунд между запросами.

Пакетная обработка запросов

Если вы скрапите сотни товаров, группируйте запросы по категориям и распределяйте по времени:

  • Не более 50–70 запросов в минуту с одного IP.
  • Ротация IP между запросами — каждый запрос через новый exit IP.
  • Случайные задержки: random.uniform(2, 6) секунд.
  • Перерыв 60–120 секунд каждые 100 запросов.

С ProxyHat ротация IP на каждый запрос работает по умолчанию — достаточно не указывать флаг session в username. Для sticky-сессии (один IP на серию запросов) добавьте session-{id}:

# Rotating IP (new IP per request)
http://user-country-US:pass@gate.proxyhat.com:8080

# Sticky session (same IP for all requests in session)
http://user-country-US-session-myjob001:pass@gate.proxyhat.com:8080

Обнаружение soft-блоков до hard CAPTCHA

Ключевой навык — заметить soft-block до того, как Google выдаст reCAPTCHA. Признаки:

ПризнакЧто значитДействие
Редирект на /sorry/indexIP помечен, CAPTCHA требуетсяСменить IP, пауза 5–10 минут
HTTP 429Rate limit превышенСменить IP, увеличить задержку
Пустые результаты без ошибкиSoft-block — Google возвращает пустую SERPСменить IP, проверить вручную
Меньше результатов, чем обычноЧастичный soft-blockСменить IP, снизить частоту
HTTP 503 Service UnavailableВременная блокировка IPСменить IP, пауза 30 минут

Этика, TOS и правовые аспекты

Сбор публичных данных о ценах — серая зона. Вот что нужно учитывать:

Публичные данные

Цены и товары в Google Shopping — публично доступная информация. Вы не обходите платный доступ и не извлекаете персональные данные. Однако Terms of Service Google запрещают автоматизированный доступ к результатам поиска без разрешения.

CFAA и GDPR

В США Computer Fraud and Abuse Act (CFAA) исторически использовался для преследования скрапинга, хотя прецедент hiQ Labs v. LinkedIn (2022) сузил применение CFAA к публичным данным. В ЕС GDPR не запрещает сбор публичных цен, но если вы собираете данные, связанные с идентификацией пользователей (отзывы с именами), это может подпадать под регулирование.

Когда использовать официальные каналы

Если вы работаете с большим объёмом данных или в регулируемой отрасли, рассмотрите:

  • Партнёрские программы Google Shopping для официального доступа к данным.
  • Серверные партнёрские API через Google Cloud.
  • Коммерческие SERP API-провайдеры, которые берут на себя комплаенс.

Для большинства задач конкурентного анализа цен сбор публичных SERP-данных через резидентные прокси остаётся стандартным подходом в отрасли. Главное — соблюдать robots.txt, не перегружать серверы и не собирать персональные данные.

Настройка ProxyHat для скрапинга Google Shopping

ProxyHat предоставляет резидентные, мобильные и datacenter прокси. Для Google Shopping оптимальны резидентные прокси — они имеют наибольший уровень доверия Google и реже попадают под блокировки.

Рекомендуемая конфигурация

  • Тип прокси: Residential (резидентные)
  • Гео-таргетинг: Страна + город для точной локализации цен
  • Ротация: Per-request (новый IP на каждый запрос) для распределения нагрузки
  • Sticky-сессии: Для пагинации и многостраничных запросов по одному товару
  • Порт: 8080 (HTTP) или 1080 (SOCKS5)

curl-пример для быстрого теста

curl -x "http://user-country-US:YOUR_PASSWORD@gate.proxyhat.com:8080" \
  -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \
  -H "Accept-Language: en-US,en;q=0.9" \
  "https://www.google.com/search?tbm=shop&q=iphone+15+pro&gl=us&hl=en"

Tарифы ProxyHat можно посмотреть на странице цен. Документация по API и параметрам доступна на docs.proxyhat.com.

Key Takeaways

Content API не подходит для конкурентного анализа — он отдаёт только ваши собственные товары. Для рыночных данных нужен HTML-парсинг SERP с tbm=shop.

Резидентные прокси с city-level гео обязательны — цены и продавцы зависят от региона IP-адреса. Комбинируйте -country-XX-city-yy с параметрами gl и hl.

Мониторьте soft-блоки — пустые SERP, редиректы на /sorry/ и HTTP 429 сигнализируют о скорой блокировке. Реагируйте сменой IP и паузой.

Соблюдайте этику — публичные данные только, без персональных данных, с уважением к robots.txt и TOS.

FAQ

Что такое скрапинг цен Google Shopping?

Скрапинг цен Google Shopping — это автоматизированный сбор данных о товарах, ценах, продавцах и рейтингах из результатов поиска Google Shopping (SERP с параметром tbm=shop). В отличие от Content API for Shopping, который отдаёт только товары собственного мерчант-аккаунта, HTML-парсинг SERP позволяет получить конкурентные рыночные данные по любым товарам и регионам.

Зачем скрапинг Google Shopping нужен пользователям прокси?

Google применяет агрессивную антибот-защиту: reCAPTCHA, редиректы на /sorry/index и per-IP rate limits. Datacenter IP-адреса блокируются за 15–20 запросов в минуту. Резидентные прокси с гео-таргетингом обеспечивают реалистичные IP-адреса, которые Google воспринимает как обычных пользователей, и позволяют получать локализованные цены для конкретных регионов.

Какой тип прокси лучше для скрапинга Google Shopping?

Резидентные прокси — оптимальный выбор для Google Shopping. Они используют IP-адреса реальных домашних интернет-провайдеров, что даёт максимальный уровень доверия Google. Datacenter прокси блокируются быстро. Мобильные прокси также эффективны, но стоят дороже. Для локализации цен по региону выбирайте резидентные прокси с гео-таргетингом по стране и городу.

Как избежать блокировок при скрапинге Google Shopping?

Используйте ротацию IP на каждый запрос, случайные задержки 3–8 секунд, реалистичные заголовки User-Agent и Accept-Language. Мониторьте признаки soft-блоков: пустые SERP, редиректы на /sorry/, HTTP 429. При обнаружении — меняйте IP и делайте паузу. Не превышайте 50–70 запросов в минуту с одного IP и делайте перерывы каждые 100 запросов.

Можно ли использовать SOCKS5 для скрапинга Google Shopping?

Да, SOCKS5 поддерживается через порт 1080. Формат: socks5://user-country-US:pass@gate.proxyhat.com:1080. SOCKS5 может быть полезен для некоторых библиотек, но HTTP-прокси на порту 8080 работает одинаково эффективно и проще в настройке для большинства Python и Node.js библиотек.

Часто задаваемые вопросы

Что такое скрапинг цен Google Shopping?

Скрапинг цен Google Shopping — это автоматизированный сбор данных о товарах, ценах, продавцах и рейтингах из результатов поиска Google Shopping (SERP с параметром tbm=shop). В отличие от Content API for Shopping, который отдаёт только товары собственного мерчант-аккаунта, HTML-парсинг SERP позволяет получить конкурентные рыночные данные по любым товарам и регионам.

Зачем скрапинг Google Shopping нужен пользователям прокси?

Google применяет агрессивную антибот-защиту: reCAPTCHA, редиректы на /sorry/index и per-IP rate limits. Datacenter IP-адреса блокируются за 15–20 запросов в минуту. Резидентные прокси с гео-таргетингом обеспечивают реалистичные IP-адреса, которые Google воспринимает как обычных пользователей, и позволяют получать локализованные цены для конкретных регионов.

Какой тип прокси лучше для скрапинга Google Shopping?

Резидентные прокси — оптимальный выбор для Google Shopping. Они используют IP-адреса реальных домашних интернет-провайдеров, что даёт максимальный уровень доверия Google. Datacenter прокси блокируются быстро. Мобильные прокси также эффективны, но стоят дороже. Для локализации цен по региону выбирайте резидентные прокси с гео-таргетингом по стране и городу.

Как избежать блокировок при скрапинге Google Shopping?

Используйте ротацию IP на каждый запрос, случайные задержки 3–8 секунд, реалистичные заголовки User-Agent и Accept-Language. Мониторьте признаки soft-блоков: пустые SERP, редиректы на /sorry/, HTTP 429. При обнаружении — меняйте IP и делайте паузу. Не превышайте 50–70 запросов в минуту с одного IP и делайте перерывы каждые 100 запросов.

Можно ли использовать SOCKS5 для скрапинга Google Shopping?

Да, SOCKS5 поддерживается через порт 1080. Формат: socks5://user-country-US:pass@gate.proxyhat.com:1080. SOCKS5 может быть полезен для некоторых библиотек, но HTTP-прокси на порту 8080 работает одинаково эффективно и проще в настройке для большинства Python и Node.js библиотек.

Готовы начать?

Доступ к более чем 50 млн резидентных IP в 148+ странах с AI-фильтрацией.

Смотреть ценыРезидентные прокси
← Вернуться в Блог