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

Конкурентный парсинг Google Shopping требует разбора HTML SERP, обхода reCAPTCHA и локализации через residential-прокси. Разбираем селекторы, Python-код и стратегию ротации IP.

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

Как скрейпить цены Google Shopping в 2026: API против HTML

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

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

Почему проблема существует: антибот-стек Google

Google Shopping работает поверх основного поискового движка Google, который имеет один из самых агрессивных антибот-стеков в индустрии. При парсинге вы столкнётесь с тремя уровнями защиты:

  • reCAPTCHA и Enterprise-варианты — при подозрительном трафике Google показывает интерактивную капчу или невидимую reCAPTCHA v3, которая присваивает риск-скор и может заблокировать запрос без видимой причины.
  • Редирект sorry/index — вместо капчи Google может молча перенаправить на https://www.google.com/sorry/index?continue=.... Это «мягкий блок»: страница не отдаёт результаты, но и не показывает CAPTCHA. Часто срабатывает после 50–200 запросов с одного IP за короткий период.
  • Per-IP rate limits — Google ограничивает частоту запросов с одного IP-адреса. Порог зависит от типа IP: datacenter-адреса блокируются быстрее (часто после 20–50 запросов), residential-адреса выдерживают дольше, но тоже имеют лимиты.

Согласно RFC 7231, сервер может возвращать статус 429 (Too Many Requests) при превышении лимитов, но Google часто использует 200 OK с редиректом на sorry-страницу или 302 на CAPTCHA — это усложняет детектирование блоков.

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

Поисковая SERP Google Shopping

Базовый URL для поиска по товарам:

https://www.google.com/search?tbm=shop&q=Nike+Air+Max+90&gl=US&hl=en

Ключевые параметры:

  • tbm=shop — переключает на вкладку Shopping.
  • q= — поисковый запрос (URL-encoded).
  • gl= — геолокация страны (US, DE, FR, GB и т.д.).
  • hl= — язык интерфейса (en, de, fr, ru).
  • num= — количество результатов на странице (Google обычно отдаёт 20–40 для Shopping).

CSS-селекторы для парсинга SERP

Структура HTML Google Shopping регулярно меняется, но на момент 2026 года актуальны следующие селекторы:

ДанныеCSS-селекторОписание
Контейнер результатов.sh-dgr__contentОсновной блок с результатами Shopping
Карточка товара.sh-pr__product-resultsОтдельная карточка товара в выдаче
Цена.a8Pemb или span[data-base-shipping-id]Текст цены, например «$129.99»
Название товараh3.t16o7d или .Lq0KhdЗаголовок товара
Продавец.dMEzLd или span[data-shipping]Имя продавца/магазина
Рейтингspan[aria-label$="stars"]Звёздный рейтинг, например «4.5 stars»

Карточка товара /shopping/product/

При клике на товар открывается страница детализации:

https://www.google.com/shopping/product/1:en-US:1234567890:0?gl=US&hl=en

Здесь доступны офферы от разных продавцов. Селекторы для панели офферов:

  • .sh-os__offer-seller — имя продавца в списке офферов.
  • .sh-os__offer-price — цена конкретного оффера.
  • .sh-os__offer-link — ссылка на магазин продавца.
  • .sh-pro__geo-region — регион доставки для оффера.

Важно: Google регулярно обновляет DOM-структуру. Рекомендуется использовать несколько fallback-селекторов и логировать неразобранные блоки для последующего анализа.

Локализованные цены: почему нужны residential-прокси с городом

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

Параметры gl и hl в URL задают страну и язык, но Google также сверяет IP-адрес запроса с указанной геолокацией. Если IP из Германии, а gl=US, Google может показать гибридные результаты или вернуть редирект. Residential-прокси с точным соответствием IP и параметра gl дают наиболее чистые данные.

ProxyHat поддерживает геотаргетинг на уровне страны и города через флаги в username:

  • user-country-US — IP из США (случайный город).
  • user-country-DE-city-berlin — IP из Берлина, Германия.
  • user-country-GB-city-london — IP из Лондона, Великобритания.

Для сравнения, datacenter-прокси часто блокируются Google Shopping уже после 20–50 запросов, тогда как residential-адреса выдерживают 200–500 запросов с одного IP до мягкого блока, согласно отраслевым наблюдениям.

Практическая реализация: Python requests через ProxyHat

Ниже — рабочий пример парсинга Google Shopping через ProxyHat residential-прокси. Скрипт отправляет запрос на SERP, парсит первый блок результата и выводит название, цену, продавца и рейтинг.

import requests
from bs4 import BeautifulSoup
import time
import random

# ProxyHat residential proxy with US geo-targeting
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/121.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 = "Nike Air Max 90"
url = f"https://www.google.com/search?tbm=shop&q={requests.utils.quote(query)}&gl=US&hl=en"

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

# Detect soft-block: check for sorry redirect
if "sorry/index" in response.url:
    print("SOFT BLOCK detected — IP flagged. Rotate session.")
    exit(1)

soup = BeautifulSoup(response.text, "html.parser")

# Parse first product result block
product_container = soup.select_one(".sh-dgr__content .sh-pr__product-results")

if product_container:
    title = product_container.select_one("h3.t16o7d")
    price = product_container.select_one(".a8Pemb")
    seller = product_container.select_one(".dMEzLd")
    rating = product_container.select_one('span[aria-label$="stars"]')

    print(f"Title:  {title.text.strip() if title else 'N/A'}")
    print(f"Price:  {price.text.strip() if price else 'N/A'}")
    print(f"Seller: {seller.text.strip() if seller else 'N/A'}")
    print(f"Rating: {rating['aria-label'] if rating else 'N/A'}")
else:
    print("No product results found — selectors may have changed.")
    print(f"Response length: {len(response.text)} chars")
    # Save HTML for debugging
    with open("debug_shopping.html", "w", encoding="utf-8") as f:
        f.write(response.text)

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

Title:  Nike Air Max 90 Men's Shoes
Price:  $129.97
Seller: Foot Locker
Rating: 4.6 stars

Версия для SOCKS5

Если вам нужен SOCKS5 (например, для обхода корпоративных прокси-фильтров), используйте порт 1080:

proxy_url = "socks5://user-country-DE-city-berlin:YOUR_PASSWORD@gate.proxyhat.com:1080"

proxies = {
    "http": proxy_url,
    "https": proxy_url,
}

Пагинация, батчинг и детектирование блоков

Пагинация Google Shopping

Google Shopping не использует классическую пагинацию с номерами страниц. Вместо этого применяется бесконечная прокрутка через AJAX-запросы. Для программного доступа можно использовать параметр start:

https://www.google.com/search?tbm=shop&q=Nike+Air+Max+90&gl=US&hl=en&start=20

Шаг start обычно равен 20 или 40. Для глубокого сбора данных рекомендуется не уходить дальше 3–5 страниц (60–200 результатов), так как релевантность падает, а риск блокировки растёт.

Стратегия батчинга запросов

  • Размер батча: 10–20 запросов на одну сессию IP перед ротацией.
  • Задержка: случайные 2–5 секунд между запросами (не фиксированные).
  • Ротация сессий: используйте флаг user-session-{id} для sticky-сессий, меняйте ID каждые 10–20 запросов.
  • Конкурентность: не более 3–5 параллельных потоков с одного IP.

Детектирование мягких блоков

Ключевой навык — обнаружить мягкий блок до того, как получите hard CAPTCHA. Признаки мягкого блока:

  1. Редирект на /sorry/index — проверяйте response.url.
  2. Пустая SERP при наличии результатов (длина HTML < 10 000 символов).
  3. Статус 429 или 503.
  4. CAPTCHA-страница вместо результатов (ищите g-recaptcha в HTML).
  5. Резкое падение количества распарсенных результатов (с 20 до 0–2).
def check_soft_block(response, min_html_length=10000):
    """Detect soft blocks before they escalate to hard CAPTCHA."""
    if "sorry/index" in response.url:
        return "sorry_redirect"
    if response.status_code == 429:
        return "rate_limited"
    if "g-recaptcha" in response.text:
        return "captcha_page"
    if len(response.text) < min_html_length:
        return "empty_response"
    return None

# Usage in loop
block_type = check_soft_block(response)
if block_type:
    print(f"Soft block detected: {block_type}")
    # Rotate session immediately
    session_id = f"shop-{random.randint(10000, 99999)}"
    proxy_url = f"http://user-country-US-session-{session_id}:PASS@gate.proxyhat.com:8080"
    time.sleep(random.uniform(10, 30))  # Cool-down before retry

Сравнение типов прокси для Google Shopping

Тип проксиСкоростьРиск блокировкиГеотаргетингСтоимостьРекомендация
DatacenterВысокая (<100ms)Очень высокий (20–50 запросов)ОграниченныйНизкаяНе рекомендуется для Shopping
ResidentialСредняя (200–800ms)Низкий (200–500 запросов)Страна + городСредняяОптимальный выбор
MobileНизкая (500–2000ms)МинимальныйСтрана (ASN)ВысокаяДля самых жёстких блоков

Для большинства задач парсинга Google Shopping residential-прокси с геотаргетингом на уровне города — оптимальный баланс цены и надёжности. Ознакомьтесь с тарифами на странице цен ProxyHat.

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

Парсинг публичных данных — серая зона. Ключевые моменты:

  • Публичные данные только: цены и рейтинги на Google Shopping общедоступны без авторизации. Не пытайтесь обходить paywall или собирать персональные данные.
  • robots.txt: Google запрещает парсинг SERP в robots.txt для большинства User-Agent. Технически вы можете игнорировать robots.txt, но это ослабляет вашу правовую позицию.
  • CFAA (Computer Fraud and Abuse Act): в США парсинг публичных данных после дела hiQ Labs v. LinkedIn (2022) признан допустимым, но обход технических барьеров может квалифицироваться иначе.
  • GDPR: если вы собираете данные из ЕС, убедитесь, что не обрабатываете персональные данные пользователей. Цены товаров не являются персональными данными, но отзывы с именами — да.
  • ToS Google: условия использования Google запрещают автоматизированный доступ. Нарушение ToS — не обязательно преступление, но может привести к бану аккаунтов и IP.

Для крупномасштабного коммерческого сбора данных рассмотрите официальные партнёрские программы Google, такие как Custom Search API (ограниченный, но легитимный доступ) или официальный SERP API-партнёр. Полная документация по настройке прокси доступна на docs.proxyhat.com.

Key Takeaways

Главное о парсинге Google Shopping в 2026:

  • Content API for Shopping отдаёт только собственные товары — для конкурентных цен нужен парсинг HTML SERP.
  • Базовый URL: google.com/search?tbm=shop&q=QUERY&gl=COUNTRY&hl=LANG.
  • Ключевые селекторы: .sh-dgr__content, .sh-pr__product-results, .a8Pemb (цена).
  • Локализация требует residential-прокси с city-level geo: user-country-DE-city-berlin.
  • Детектируйте мягкие блоки (sorry-редирект, пустой HTML) до получения hard CAPTCHA.
  • Батч по 10–20 запросов, задержки 2–5 секунд, ротация сессий.
  • Этика: только публичные данные, уважайте robots.txt, рассматривайте официальные API для масштаба.

Готовы начать? Изучите доступные локации прокси на странице локаций ProxyHat, прочитайте о веб-скрапинге и SERP-трекинге в наших руководствах, или сразу перейдите к тарифам.

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

Что такое скрейпинг цен Google Shopping и зачем он нужен?

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

Почему для скрейпинга Google Shopping важны прокси?

Google применяет агрессивные per-IP rate limits, reCAPTCHA и редиректы на sorry/index. Без прокси один IP блокируется после 20–50 запросов (datacenter) или 200–500 (residential). Прокси с ротацией IP позволяют распределить запросы по множеству адресов и собирать локализованные данные — цены зависят от геолокации, поэтому residential-прокси с city-level геотаргетингом критичны для корректного сбора по разным рынкам.

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

Residential-прокси с геотаргетингом на уровне страны и города — оптимальный выбор. Они реже блокируются (200–500 запросов на IP против 20–50 у datacenter), поддерживают точную локализацию (user-country-DE-city-berlin) и имитируют реальных пользователей. Mobile-прокси надёжнее, но дороже. Datacenter-прокси не рекомендуются: Google быстро их детектирует. Для ProxyHat используйте: http://user-country-US:PASSWORD@gate.proxyhat.com:8080.

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

Используйте residential-прокси с ротацией сессий каждые 10–20 запросов, случайные задержки 2–5 секунд, реалистичные User-Agent и Accept-Language заголовки. Детектируйте мягкие блоки: проверяйте редиректы на sorry/index, пустые ответы (<10 000 символов), статус 429 и g-recaptcha в HTML. При обнаружении мягкого блока ротируйте сессию (user-session-{new_id}) и сделайте паузу 10–30 секунд.

Легален ли парсинг цен Google Shopping?

Парсинг публично доступных цен и рейтингов товаров не нарушает GDPR (цены не являются персональными данными), но ToS Google запрещают автоматизированный доступ. В США после дела hiQ v. LinkedIn (2022) парсинг публичных данных признан допустимым, однако обход технических барьеров может квалифицироваться по CFAA. Для крупномасштабного коммерческого использования рекомендуется рассмотреть официальные API Google.

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

Резидентные, ISP и мобильные прокси в 148+ странах. Создайте бесплатный аккаунт.

Создать бесплатный аккаунт
← Вернуться в Блог