Веб-скрапінг · 1 хв читання

Парсинг видачі Google без блокувань

Google жорстко обмежує частоту автоматичних пошукових запитів, тож парсинг видачі у великому обсязі — це передусім розподіл трафіку і поведінка, схожа на браузер. Розбираємо практичні тактики: ротацію проксі, темп запитів, заголовки і розбір відповіді — з чесними зауваженнями про межі й правила.

Чому Google блокує скраперів

Сторінка результатів пошуку Google — один із найзахищеніших ендпоінтів у мережі. Надішліть забагато автоматичних запитів з однієї IP — і швидко впіймаєте CAPTCHA (заставка про «незвичайний трафік»), а далі жорсткі блокування. Виявлення дивиться на обсяг з адреси, надто рівний ритм запитів, відсутні або роботоподібні заголовки і брак нормальної браузерної поведінки.

Два факти, які варто прийняти одразу. Перше: скрапінг результатів Google суперечить його умовам використання, а для програмного доступу є офіційні API (Custom Search JSON API і платні варіанти) — зважте їх перед скрапінгом. Друге: жодна техніка не робить автоматичний збір видачі надійним назавжди; захист змінюється, і хто обіцяє невиявний скрапінг Google, той продає казку. Хороший інструментарій лише знижує частку блокувань настільки, щоб збирати дані у стійкому темпі.

Тактики, які справді допомагають

Основна ідея — виглядати як багато звичайних людей, а не як один невтомний бот:

  • Крутіть IP — розкидайте запити по пулу, щоб жодна адреса не перевищувала терпіння Google. Це найбільший важіль. Дивіться наш гайд про ротаційні та липкі сесії.
  • Тримайте темп і додавайте випадковість — джитер між запитами замість фіксованого інтервалу; рівний ритм видає з головою. Повільніше — довговічніше, ніж швидко й у бан.
  • Надсилайте реалістичні заголовки — справжній User-Agent, Accept-Language і решту того, що шле браузер. Змінюйте їх з розумом, а не тягніть один і той самий набір.
  • Сприймайте CAPTCHA як сигнал — упіймали її, відводьте цю IP на відпочинок, а не пробивайтеся напролом.
  • Для результатів із важким JS беріть headless-браузер — частина блоків видачі малюється на клієнті.

Репутація адреси має значення: Google оцінює серверні діапазони, тож масовий збір видачі — типовий випадок, коли резидентські IP тримаються краще за серверні. s4m продає серверні проксі, які пасують легшому або добре розміреному збору; для великих обсягів видачі чесно спитайте себе, чи витягне серверний тип.

Розмірений запит через проксі на Python

Мінімальний приклад: ходимо через проксі s4m, шлемо реалістичний заголовок і тримаємо темп. У бою крутіть проксі й User-Agent по пулу.

python
import time, random, requests

proxies = {
    "http":  "http://USER:[email protected]:3128",
    "https": "http://USER:[email protected]:3128",
}
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/122.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
}

for query in queries:
    r = requests.get("https://www.google.com/search",
                     params={"q": query, "num": 10},
                     headers=headers, proxies=proxies, timeout=20)
    if r.status_code == 429 or "unusual traffic" in r.text:
        # Back off this IP; rotate to the next proxy in your pool.
        time.sleep(60)
        continue
    parse_results(r.text)          # your parser (e.g. selectolax/bs4)
    time.sleep(random.uniform(3, 8))  # jitter, don't hammer
Поділитися сторінкою
FAQ

Відповіді на питання

Чи законно скрапити Google?

Скрапінг публічної видачі лежить у спірній зоні: він порушує умови використання Google, а залежно від юрисдикції і зібраних даних можливий і юридичний ризик. До того ж Google дає офіційні API для програмного доступу. Спершу розгляньте їх, а для чогось масштабного отримайте власну юридичну консультацію.

Чи потрібні резидентські проксі, щоб скрапити Google?

Для великих обсягів — часто так: Google оцінює серверні діапазони, тож вони швидше впираються в CAPTCHA. Серверні проксі (а саме такі продає s4m) годяться для легшого, добре розміреного збору. Ротація і темп важать не менше за тип IP; жоден проксі не робить збір видачі захищеним від блокувань.

Як уникнути CAPTCHA про «незвичайний трафік»?

Сприймайте її як сигнал про темп: крутіть IP, додавайте випадкові паузи між запитами, шліть реалістичні браузерні заголовки і відводьте на відпочинок будь-яку адресу, якій показали перевірку, замість негайних повторів. Частоту CAPTCHA ви знизите, але на масштабі позбутися її повністю не вийде.

Розподіліть трафік свого скрапінгу

Пустіть запити через автентифіковані серверні проксі s4m, крутіть пул і тримайте розмірений темп. Оплата за спожите, а для тестів є безкоштовний список проксі, який перевіряється безперервно. Анонімні акаунти, приймаємо криптовалюту.

Цю сторінку знаходять за запитами

Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.