Перейти до основного вмісту
У умовах посилення боротьби між веб-скребками та анти-скребковими системами, контроль за ризиками на великих веб-сайтах та додатках стає все більш жорстким, одним із заходів є блокування IP-адрес. Щоб вирішити проблему блокування IP, ефективним способом є налаштування проксі. Після налаштування проксі, веб-скребок може використовувати IP-адресу проксі для маскування своєї реальної IP-адреси, що дозволяє обійти обмеження анти-скребкових систем. Але якість проксі може бути різною, наприклад, безкоштовні проксі на ринку, майже всі з них є недоступними або заблокованими, а деякі платні звичайні проксі також потрапили до чорних списків контролю ризиків на великих веб-сайтах та додатках. Тому зараз залишається все менше проксі, які можна використовувати для збору якісних даних. На сьогоднішній день основними типами високоякісних проксі є ексклюзивні проксі, ADSL проксі, мобільні стільникові проксі. Ця проксі-служба заснована на ADSL і є ротаційною проксі-службою, у цьому документі буде представлено методи подачі заявки та використання цієї служби.

Вступ до ADSL проксі

ADSL, англійською Asymmetric Digital Subscriber Line, тобто асиметрична цифрова абонентська лінія. ADSL підключається до Інтернету через набір, під час набору потрібно ввести облікові дані ADSL, і кожного разу при наборі змінюється IP-адреса. IP-адреси розподілені по кількох діапазонах, якщо всі IP-адреси доступні, це означає, що їх кількість може досягати десятків мільйонів. Проксі, побудовані на основі ADSL, мають дві переваги в порівнянні зі звичайними проксі, побудованими в дата-центрах: по-перше, лінії в основному належать до мобільних операторів, таких як China Mobile, China Unicom, China Telecom, що ближче до звичайних домашніх інтернет-з’єднань, тому ймовірність блокування IP буде нижчою. По-друге, велика кількість IP-адрес, чим більше IP-адрес, тим менша ймовірність блокування кожної з них. Ця проксі-служба базується на великій ADSL проксі-мережі, яка охоплює китайські лінії, основні лінії походять від VPS-серверів, що використовують набір, з охопленням понад 100 міст Китаю, з вихідними IP-адресами близько 300 тисяч на день. Підтримує запити даних практично з усіх веб-сайтів та додатків на ринку, якість проксі дуже висока, що значно знижує ймовірність контролю ризиків.

Метод подачі заявки

Щоб скористатися ADSL службою, спочатку перейдіть на «сторінку заявки» для подачі заявки, перша заявка має 1 безкоштовний кредит, приблизно 17,5 МБ. Якщо ви ще не увійшли в систему, вас автоматично перенаправлять на сторінку входу, після входу продовжте подавати заявку. Після подачі заявки ви можете перевірити результати своєї заявки в «консолі», як показано на малюнку: Натисніть «Credentials», щоб переглянути ім’я користувача та пароль для використання ADSL проксі-служби, розділені двокрапкою, де ім’я користувача складається з 8 символів, а пароль з 32 символів, як показано на малюнку: Ця ADSL проксі є ротаційною проксі, тому під час використання потрібно лише налаштувати одну фіксовану адресу проксі та порт, адреса проксі та порт - це adsl.proxy.acedata.cloud та 30005, це проксі для протоколів HTTP/HTTPS/SOCKS, які можна використовувати для доступу до веб-сайтів протоколів HTTP та HTTPS.

Тестування команд

Отримавши ім’я користувача та пароль проксі, найзручнішим способом є тестування через командний рядок curl, якщо ви ще не встановили, будь ласка, зверніться до https://curl.se/ для установки. Припустимо, що поточні ім’я користувача та пароль проксі - це 1f78266a:eff0896726224fa2a99fe82dd1f07562, ми можемо використати наступну команду curl для тестування:
curl -x 1f78266a:eff0896726224fa2a99fe82dd1f07562@adsl.proxy.acedata.cloud:30005 https://ipinfo.io
Тут ми використовуємо параметр curl -x, щоб вказати адресу проксі, проксі-протокол за замовчуванням - HTTP/HTTPS, URL запиту - https://ipinfo.io, цей сайт може повернути реальну IP-адресу та регіон, в якому знаходиться IP. Результат виконання виглядає так:
{
  "ip": "183.210.224.227",
  "city": "Jinrongjie",
  "region": "Beijing",
  "country": "CN",
  "loc": "39.9122,116.3561",
  "org": "AS56046 China Mobile communications corporation",
  "postal": "101100",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}

Інтеграція коду

Нижче наведено приклад налаштування проксі на Python:
import requests

proxy = 'https://{proxy_username}:{proxy_password}@adsl.proxy.acedata.cloud:30005'

proxies = {
    'http': proxy,
    'https': proxy
}

for _ in range(3):
    resp = requests.get('https://ipinfo.io', proxies=proxies)
    print(resp.text)

Тут ми спочатку оголосили URL проксі та визначили його як змінну proxy, протокол - http, далі йдуть ім’я користувача та пароль тунельного проксі (тобто ім’я користувача та пароль, які відображаються в консолі, розділені двокрапкою), потім йде символ @, а потім адреса та порт проксі. Далі ми оголосили змінну proxies, налаштувавши два ключові пари, де ключі - це http та https, а значення - це proxy, що означає, що для веб-сайтів протоколів HTTP та HTTPS запити здійснюються через проксі, визначений змінною proxy. Потім ми визначили три цикли для тестування проксі, URL запиту - https://ipinfo.io, цей сайт може повернути реальну IP-адресу та регіон, в якому знаходиться IP. Результат виконання виглядає так:
{
  "ip": "211.93.135.114",
  "city": "Шанхай",
  "region": "Шанхай",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS4837 CHINA UNICOM China169 Backbone",
  "postal": "200000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "112.22.109.176",
  "city": "Нанкін",
  "region": "Цзянсу",
  "country": "CN",
  "loc": "32.0617,118.7778",
  "org": "AS56046 China Mobile communications corporation",
  "postal": "210000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "39.162.179.215",
  "city": "Янчжоу",
  "region": "Цзянсу",
  "country": "CN",
  "loc": "32.3972,119.4358",
  "org": "AS24445 Henan Mobile Communications Co.,Ltd",
  "postal": "225000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
Можна побачити, що кожного разу результати виконання дають випадкові проксі IP, і регіон, в якому знаходиться IP, дійсно походить з різних провінцій і міст Китаю. Звичайно, вищезгаданий спосіб налаштування проксі насправді є відносно простим способом налаштування. Насправді, вищезгаданий код еквівалентний налаштуванню додаткового заголовка - Proxy Authorization під час запиту, тому вищезгаданий код також можна переписати наступним чином:
import requests
import base64

proxy_host = 'adsl.proxy.acedata.cloud'
proxy_port = '30005'
proxy_username = '{proxy_username}' # 8-значне ім'я користувача
proxy_password = '{proxy_password}' # 32-значний пароль

credentials = base64.b64encode(
    f'{proxy_username}:{proxy_password}'.encode()).decode()

proxies = {
    'http': f'http://{proxy_host}:{proxy_port}',
    'https': f'http://{proxy_host}:{proxy_port}'
}

headers = {
    'Proxy-Authorization': f'Basic {credentials}'
}

for _ in range(3):
    resp = requests.get('https://ipinfo.io',
                        proxies=proxies, headers=headers)
    print(resp.text)

Можна побачити, що тут ми через заголовок Proxy-Authorization додатково налаштували ім’я користувача та пароль проксі (які потрібно закодувати в Base64), такий код також працює так само. Для інших мов, таких як JavaScript з axios, також можна використовувати подібний спосіб налаштування:
const axios = require("axios");
const base64 = require("base64");

const proxy_host = "adsl.proxy.acedata.cloud";
const proxy_port = "30005";
const proxy_username = "{proxy_username}"; // 8-значне ім'я користувача
const proxy_password = "{proxy_password}"; // 32-значний пароль

const credentials = base64.encode(`${proxy_username}:${proxy_password}`);

const proxies = {
  http: `http://${proxy_host}:${proxy_port}`,
  https: `http://${proxy_host}:${proxy_port}`,
};

const headers = {
  "Proxy-Authorization": `Basic ${credentials}`,
};

for (let i = 0; i < 3; i++) {
  axios
    .get("https://ipinfo.io", { proxies, headers })
    .then((resp) => console.log(resp.data))
    .catch((err) => console.error(err));
}
Результат виконання однаковий. Для налаштувань інших мов, будь ласка, зверніться до вищезгаданого тексту та перепишіть самостійно.

Купити більше

Якщо ваш пакет вже вичерпано, вам потрібно купити більше, щоб продовжити користуватися цією проксі-службою. Щоб купити більше, перейдіть на «сторінку заявки» і просто натисніть кнопку «Купити більше», щоб вибрати, чим більше ви купуєте, тим дешевше одинична ціна.