Як уникнути банів IP під час скрапінгу
Бани IP зазвичай походять від поведінки, а не від невдачі — забагато запитів, недбалі заголовки та відбиток, що кричить «бот». Ось як скрапити в межах правил і підтримувати потік запитів.
Чому сайти банять IP (і що виправити насамперед)
Більшість блокувань спричинені тим, як ви робите запити, а не тим, хто ви.
Три сигнали виконують основну роботу за більшістю банів:
- Частота та обсяг — забагато запитів за секунду з одного IP або ідеально рівний ритм, який жодна людина не змогла б відтворити.
- Відбиток — TLS/JA3, порядок фреймів HTTP/2 та порядок заголовків, що не відповідають браузеру, за який ви себе видаєте.
- Заголовки — відсутній або стандартний
User-Agent, немаєAccept-Language, застарілий або відсутнійReferer.
Перш ніж оптимізувати будь-що з цього, прочитайте robots.txt та Умови надання послуг цільового сайту. Скрапінг публічних даних часто прийнятний; але надмірне навантаження на ендпоінт, ігнорування опублікованих лімітів частоти або збір персональних даних можуть порушувати ToS, а в деяких юрисдикціях — і закон. Дотримуйтесь crawl-delay, кешуйте те, що завантажуєте, і не повторюйте запити до сайту, доки він не впаде.
Коли ви скрапите відповідально, ваш головний важіль — це те, як призначаються IP:
| Підхід | Найкраще для | Компроміс |
|---|---|---|
| Ротація (новий IP на запит/пакет) | Публічні сторінки з великим обсягом, пошукові обходи | Розподіляє навантаження, але руйнує сесії, кошики та входи |
| Статичний / сесійний (той самий IP протягом певного часу) | Потоки з авторизацією, багатокрокова навігація, пагінація | Виглядає по-людськи, але концентрує навантаження на одному виході |
s4m використовує проксі центрів обробки даних — автентифіковані SOCKS5 + HTTP, а не резидентні. Вони швидкі та дешеві за GB, але деякі споживчі сайти легше позначають діапазони центрів обробки даних, тож поєднуйте їх із чистими заголовками та чесними лімітами частоти. Потрібен один стабільний вихід для входів? Додайте виділений IP. Надаєте перевагу повному тунелю? Див. /vpn/, зважте варіанти на /compare/ або прочитайте більше посібників.
Важелі, що вберігають вас від банів
Поєднуйте їх — жоден окремий трюк не переможе хорошу антибот-систему.
Обмеження частоти та джитер
Обмежуйте паралельність, додавайте випадкові затримки між запитами та дотримуйтесь crawl-delay, а також будь-яких 429 / Retry-After, що надсилає сервер.
Ротуйте або залишайтеся статичними
Ротуйте IP для обходів без збереження стану з великим обсягом; тримайте статичний вихід для потоків із авторизацією та багатьма кроками. Багато завдань поєднують обидва підходи.
Чистий відбиток
Надсилайте реалістичні заголовки браузера з узгодженими Accept-Language та Referer замість стандартних значень бібліотек, що позначають вас як бота.
Відступайте при збоях
Використовуйте експоненційний відкат із джитером на відповіді 429 та 5xx і повністю зупиняйтеся, коли сайт чітко сигналізує про зупинку.
Контроль використання на IP
Ліміти s4m налаштовуються адміністратором для кожного IP, облікового запису та типу облікового запису, тож одне некероване завдання не спалить спільний вихід чи ваш бюджет.
Без логів, пріоритет RAM
Проксі з автентифікацією через TLS, без логів за задумом. Ваш список цілей і трафік залишаються вашими — оплата карткою чи криптою.
Стійка до банів схема скрапінгу
Шість кроків від першого запиту до надійного краулера.
Перевірте robots.txt і ToS
Переконайтеся, що ендпоінт дозволяє автоматизований доступ, зверніть увагу на crawl-delay і не чіпайте персональні або явно заборонені дані.
Встановіть бюджет запитів
Виберіть ліміт одночасних запитів і цільову кількість запитів на секунду значно нижче за ту, що виглядатиме як зловживання, а потім додайте випадкову затримку.
Надсилайте реалістичні заголовки
Задайте справжні User-Agent, Accept і Accept-Language та зберігайте їх незмінними протягом усього сеансу.
Оберіть ротаційні чи закріплені (sticky)
Ротуйте виходи для сторінок без стану; використовуйте один закріплений (sticky) вихід на кожен авторизований сеанс, щоб стан не зламався посеред процесу.
Додайте експоненційний backoff
У разі 429 / 503 зачекайте Retry-After (або 2^n) плюс jitter і повторіть кілька разів, після чого коректно припиніть спроби.
Обмежте використання на IP
Використовуйте ліміти s4m для кожного IP, щоб один скрап не вичерпав вихід, і стежте за тарифікованим використанням у міру масштабування.
Python: ввічливий краулер через проксі s4m
Закріплений (sticky) сеанс, реалістичні заголовки, backoff із jitter. Замініть USER:PASS на свої облікові дані — ніколи не прописуйте справжній IP жорстко в коді.
import random
import time
import requests
# s4m datacenter proxies (authenticated). Placeholder host only.
USER, PASS = "USER", "PASS"
HTTP = f"http://{USER}:{PASS}@proxy.s4m.online:3128"
SOCKS = f"socks5://{USER}:{PASS}@proxy.s4m.online:1080" # pip install requests[socks]
PROXIES = {"http": HTTP, "https": HTTP}
HEADERS = {
"User-Agent": (
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/125.0 Safari/537.36"
),
"Accept": "text/html,application/xhtml+xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
}
def polite_get(url, session, max_retries=5):
for attempt in range(max_retries):
r = session.get(url, headers=HEADERS, proxies=PROXIES, timeout=20)
if r.status_code == 429 or r.status_code >= 500:
wait = float(r.headers.get("Retry-After", 2 ** attempt))
time.sleep(wait + random.uniform(0, 1)) # backoff + jitter
continue
r.raise_for_status()
return r
raise RuntimeError(f"gave up after {max_retries} tries: {url}")
def crawl(urls):
# One Session = one sticky exit for this run; open a new one to rotate.
with requests.Session() as s:
for url in urls:
resp = polite_get(url, s)
yield url, resp.text
time.sleep(random.uniform(1.5, 4.0)) # rate-limit + jitter
if __name__ == "__main__":
for url, html in crawl(["https://example.com/page/1"]):
print(url, len(html))Відповіді на питання
Чи достатньо датацентрових проксі, щоб уникнути банів?
Вони приховують ваш вихідний IP і розподіляють навантаження, що запобігає багатьом блокуванням за частотою запитів. Але проксі s4m — датацентрові, а не резидентні, і деякі споживчі сайти охочіше позначають датацентрові діапазони, тож поєднуйте їх із чистими заголовками, розумними лімітами частоти та закріпленими (sticky) сеансами там, де важливий стан.
Використовувати ротаційні чи закріплені (sticky) проксі?
Ротуйте виходи для публічних сторінок без стану з великим обсягом запитів, щоб жоден окремий IP не привертав уваги. Зберігайте закріплений (sticky) сеанс, коли ви авторизовані або проходите багатокроковий процес, оскільки зміна IP посеред сеансу виглядає підозріло і може зламати кошики чи авторизацію. Багато завдань поєднують обидва підходи.
Чи законний веб-скрапінг?
Це залежить від вашої юрисдикції, даних і умов сайту. Публічні неперсональні дані часто дозволені, але ToS платформи можуть забороняти автоматизований доступ, навіть коли він технічно можливий, а персональні дані мають додаткові правила. Завжди перевіряйте robots.txt і ToS та скрапте помірковано.
Як не дати одному завданню спалити всю мою квоту?
Проксі s4m вимірювані й за фактом, із налаштовуваними адміністратором лімітами на IP, на обліковий запис і на тип облікового запису. Обмежте паралельність у вашому обхіднику та встановіть ліміт використання на IP, щоб некерований цикл не міг вичерпати ваш бюджет чи спільний вихід.
Чи можу я отримати стабільний IP для скрапінгу під авторизацією?
Так. Додаткова опція виділеного персонального IP — це статичний вихід, який ви за бажанням можете відв'язати від своєї особистості та прив'язати до проксі або VPN — корисно, коли ціль прив'язує сеанс до однієї незмінної адреси.
Скрапте розумніше, а не важче
Автентифіковані SOCKS5- + HTTP-проксі дата-центру, вимірювані за фактом, із лімітами використання на IP та опційною виділеною IP. No-logs за задумом — і чесно, що це виходи дата-центру, а не резидентні.
Цю сторінку знаходять за запитами
- як уникнути банів IP під час скрапінгу
- що таке ISP-проксі (статичні резидентні)
- проксі для парсингу з оплатою криптою
- як налаштувати проксі у Chrome та Firefox
- налаштування проксі у Puppeteer з автентифікацією
- свіжий список безкоштовних проксі
- як працює список безкоштовних проксі
- http проксі
- vpn kill switch
- WireGuard чи OpenVPN
- socks5 проксі для бізнесу
- openvpn
- авторизація проксі інструкція
- як сконфігурувати ip адреса
- ip адреса
- авторизація проксі
Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.