Резидентні та дата-центрові проксі для скрапінгу
Резидентні та дата-центрові проксі обидва змінюють адресу, з якої, здається, йде ваш трафік, але вони не взаємозамінні. Дата-центровий проксі маршрутизує трафік через сервери, розміщені в дата-центрі. Резидентний проксі маршрутизує трафік через адресу, яку інтернет-провайдер призначив домашньому з'єднанню. Різниця проявляється у швидкості, у тому, наскільки сайт довіряє адресі, і у вартості роботи. Цей посібник порівнює їх і дає простий тест, щоб вирішити, що потрібно вашому скраперу.
Коротка відповідь
Використовуйте дата-центрові проксі, коли ціль не дуже сильно захищається від автоматизації, вам потрібна висока пропускна здатність і ви збираєте дані з сайту зі щедрою політикою частоти запитів. Використовуйте резидентні проксі, коли ціль оцінює адреси за походженням, коли вам потрібна конкретна країна або місто або коли дата-центрові адреси постійно блокуються. Багато проєктів використовують обидва варіанти: дата-центрові для основного обсягу роботи, резидентні - для сторінок, які відмовляють усьому іншому.
Як вони порівнюються
Довіра. Сайти знають, які діапазони адрес належать хостинг-провайдерам, і багато з них за замовчуванням оцінюють їх нижче. Резидентна адреса виглядає як будь-який домашній відвідувач, тому починає з кращою оцінкою. Довіра - найбільша причина обрати резидентні.
Швидкість. Дата-центрові з'єднання зазвичай швидші і стабільніші. Резидентні з'єднання повільніші і можуть розриватися, бо йдуть через споживчі мережі. Для резидентного трафіку плануйте довші тайм-аути і більше повторів.
Геотаргетинг. Резидентні пули зазвичай пропонують точніший таргетинг: за країною, а часто й за регіоном або містом. Це важливо, коли сайт показує різні ціни, наявність або контент залежно від місця. Дата-центрові пули зазвичай грубіші.
Стабільність адреси. Дата-центрова адреса зазвичай зберігає свою репутацію з часом, що допомагає з закріпленими сесіями. Резидентні адреси змінюються частіше, тож безперервність сесії більше залежить від провайдера.
Вартість за запит. Дата-центрові проксі загалом дешевші для великих обсягів. Резидентний трафік тарифікується інакше і зазвичай дорожчий за ту саму кількість запитів. Перевіряйте поточні тарифи провайдера, а не припускайте, що одна з сторін дешева.
Проведіть чесний тест
Єдиний надійний спосіб обрати - протестувати обидва на вашій реальній цілі. Тримайте тест невеликим і чесним:
- Оберіть десять сторінок цілі, які відповідають реальному навантаженню.
- Запустіть той самий скрипт через дата-центровий пул, а потім через резидентний, з тим самим темпом і тими самими заголовками.
- Виміряйте відсоток успішних запитів, медіанний час відповіді і кількість блокувань або сторінок з перевіркою.
- Оберіть дешевший пул, який досягає вашої цілі за успішністю, а не той, що має найкращі сирі показники.
import time
import requests
def measure(urls: list[str], proxy: str) -> dict:
ok, blocked, times = 0, 0, []
for url in urls:
start = time.monotonic()
try:
r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30)
times.append(time.monotonic() - start)
if r.status_code in (403, 429, 503):
blocked += 1
else:
ok += 1
except requests.RequestException:
blocked += 1
time.sleep(2) # тримаємо тест ввічливим
return {
"success_rate": ok / len(urls),
"blocked": blocked,
"median_seconds": sorted(times)[len(times) // 2] if times else None,
}
Запускайте його на одному й тому самому списку URL для кожного типу проксі і порівнюйте результати поруч. Повторіть тест в інший час доби, бо навантаження на обидві мережі змінюється.
Коли з'являється капча
Блокування і капчі - різні проблеми. Резидентний проксі може зменшити частоту появи капчі, але коли вона все ж з'являється, вам все одно потрібен дійсний токен. Жива капча в Scarnox - це PopularCaptcha. Посібник по PopularCaptcha для Python показує, як токен запитується і відправляється. Якщо сайт прив'язує токен до мережевої адреси, використовуйте той самий проксі для сторінки і для розв'язання. Див. розв'язання капчі через проксі і без проксі для цього вибору.
Помилки, яких варто уникати
Найпоширеніша помилка - купувати резидентний трафік для завдання, з яким дата-центрові адреси справляються чудово. Якщо ціль - публічний каталог зі щедрою політикою частоти, додаткові витрати дають мало. Зворотна помилка - протестувати один раз у тихий вечір і зробити висновок, що пул надійний. Навантаження змінюється протягом дня, тож запускайте порівняння більше ніж в один час. Третя помилка - вимірювати лише відсоток успіху. Пул, який повертає сторінку, що виглядає нормально, але насправді є перевіркою або порожнім шаблоном, не спрацював, тож перевіряйте і вміст відповіді, а не лише її статус-код.
Етика резидентних пулів
Резидентні проксі несуть відповідальність, якої немає у дата-центрових. Адреси належать реальним домогосподарствам. Обирайте провайдера, який отримує свої адреси за свідомою згодою людей, і запитайте, як він це робить, перш ніж реєструватися. Уникайте сервісів, що маршрутизують трафік через пристрої або програмне забезпечення, встановлені без згоди власника. Це шкода приватності, а також юридичний ризик для вашого проєкту.
Скрапінг відповідально
- Читайте
robots.txtі умови сайтів, на які ви орієнтуєтеся. - Використовуйте найдешевший тип проксі, який досягає вашої реальної цілі за успішністю, і тримайте навантаження на будь-який сайт помірним.
- Не використовуйте проксі для обходу обмеження, встановленого власником сайту.
- Не збирайте персональні дані, які вам не потрібні, незалежно від адреси, з якої вони прийшли.
Що далі
- Ротаційні проксі для скрапінгу
- Скрапінг без блокувань
- Проксі чи без проксі для капчі
- Чи законний веб-скрапінг? Загальний огляд
Почніть з безкоштовного пробного кредиту, картка не потрібна: створіть обліковий запис і запустіть потік PopularCaptcha на сторінці, яка належить вам. Актуальні тарифи дивіться на сторінці тарифів.