crawlbaseДокументация
Войти
Перейдите на Smart AI Proxy

Более быстрая маршрутизация, обход блокировок на основе AI, меньше параметров конфигурации. Proxy Backconnect устарел, но существующие интеграции продолжают работать: отключение не запланировано.

Endpoint

PROXYproxy.crawlbase.com:9000
# Username = your token + optional session/country qualifiers
# Password = blank

Базовое использование

curl -x 'http://YOUR_TOKEN:@proxy.crawlbase.com:9000' \
     'https://httpbin.org/ip'
import requests

proxies = {
    'http':  'http://YOUR_TOKEN:@proxy.crawlbase.com:9000',
    'https': 'http://YOUR_TOKEN:@proxy.crawlbase.com:9000',
}
res = requests.get('https://httpbin.org/ip', proxies=proxies)
print(res.text)

По умолчанию каждый запрос проходит через другой резидентный IP: чистая ротация.

Sticky-сессии

Чтобы привязать запросы к одному IP, добавьте идентификатор сессии к имени пользователя. Один и тот же идентификатор сессии возвращает один и тот же IP примерно 30 минут.

# Format: TOKEN-session-SESSION_ID
curl -x 'http://YOUR_TOKEN-session-checkout42:@proxy.crawlbase.com:9000' \
     'https://shop.example.com/cart'
import requests

# Format: TOKEN-session-SESSION_ID
proxies = {
    'http':  'http://YOUR_TOKEN-session-checkout42:@proxy.crawlbase.com:9000',
    'https': 'http://YOUR_TOKEN-session-checkout42:@proxy.crawlbase.com:9000',
}
res = requests.get('https://shop.example.com/cart', proxies=proxies)
print(res.text)
const { fetch, ProxyAgent } = require('undici');

// Format: TOKEN-session-SESSION_ID
const dispatcher = new ProxyAgent('http://YOUR_TOKEN-session-checkout42:@proxy.crawlbase.com:9000');
const res = await fetch('https://shop.example.com/cart', { dispatcher });
console.log(await res.text());
require 'net/http'

# Format: TOKEN-session-SESSION_ID
uri = URI('https://shop.example.com/cart')
http = Net::HTTP.new(uri.host, uri.port, 'proxy.crawlbase.com', 9000, 'YOUR_TOKEN-session-checkout42', '')
http.use_ssl = true
puts http.get(uri.request_uri).body

Таргетинг по стране

# Format: TOKEN-country-XX
curl -x 'http://YOUR_TOKEN-country-DE:@proxy.crawlbase.com:9000' \
     'https://www.amazon.de'

# Combine: country + session
curl -x 'http://YOUR_TOKEN-country-DE-session-cart-1:@proxy.crawlbase.com:9000' \
     'https://www.amazon.de/cart'
import requests

# Format: TOKEN-country-XX
proxies = {
    'http':  'http://YOUR_TOKEN-country-DE:@proxy.crawlbase.com:9000',
    'https': 'http://YOUR_TOKEN-country-DE:@proxy.crawlbase.com:9000',
}
res = requests.get('https://www.amazon.de', proxies=proxies)
print(res.text)

# Combine: country + session
proxies = {
    'http':  'http://YOUR_TOKEN-country-DE-session-cart-1:@proxy.crawlbase.com:9000',
    'https': 'http://YOUR_TOKEN-country-DE-session-cart-1:@proxy.crawlbase.com:9000',
}
res = requests.get('https://www.amazon.de/cart', proxies=proxies)
print(res.text)
const { fetch, ProxyAgent } = require('undici');

// Format: TOKEN-country-XX
const country = new ProxyAgent('http://YOUR_TOKEN-country-DE:@proxy.crawlbase.com:9000');
const home = await fetch('https://www.amazon.de', { dispatcher: country });
console.log(await home.text());

// Combine: country + session
const session = new ProxyAgent('http://YOUR_TOKEN-country-DE-session-cart-1:@proxy.crawlbase.com:9000');
const cart = await fetch('https://www.amazon.de/cart', { dispatcher: session });
console.log(await cart.text());
require 'net/http'

def fetch(url, user)
  uri = URI(url)
  http = Net::HTTP.new(uri.host, uri.port, 'proxy.crawlbase.com', 9000, user, '')
  http.use_ssl = true
  http.get(uri.request_uri).body
end

# Format: TOKEN-country-XX
puts fetch('https://www.amazon.de', 'YOUR_TOKEN-country-DE')

# Combine: country + session
puts fetch('https://www.amazon.de/cart', 'YOUR_TOKEN-country-DE-session-cart-1')

Квалификаторы имени пользователя

Справочник всех доступных модификаторов имени пользователя, объединяемых через дефис.

ФорматЭффект
TOKENПо умолчанию: случайный IP на каждый запрос
TOKEN-country-XXIP из страны XX (ISO 3166)
TOKEN-session-NAMEПривязка к одному IP примерно на 30 мин
TOKEN-country-XX-session-NAMESticky-сессия в пределах одной страны

Статические IP и геолокализация

Когда нужно сохранить один и тот же выходной IP между несколькими запросами (многошаговые сценарии оформления заказа, вход в аккаунт + скрапинг, всё, что зависит от того, чтобы целевой сайт распознавал одного и того же клиента), Backconnect может закрепить статический IP и вернуть порт + время жизни сессии. Прокси будет удерживать этот IP привязанным к вашему token до тех пор, пока вы продолжаете использовать его в рамках окна сессии.

Endpoint для статических IP имеет ограничение 1 запрос в 5 минут на страну (или 1 в 5 минут в целом, если страна не указана). Кэшируйте порт, который получает ваш клиент: не запрашивайте его заново при каждом краулинге.

Функция, зависящая от тарифа

Статические IP и таргетинг по странам могут быть доступны не на всех тарифах Backconnect, а доступность стран зависит от уровня тарифа. Если вы получаете ответ unauthorized, проверьте свой тариф или обратитесь в поддержку, прежде чем повторять попытку.

Получить статический IP

Возвращает порт для использования с proxy.crawlbase.com, а также количество секунд, в течение которых сохраняется привязка. Таймер сессии автоматически продлевается, пока вы продолжаете отправлять трафик через этот порт в пределах окна.

GEThttps://api.crawlbase.com/proxy/static
curl 'https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN'

# Response
# { "port": 1234, "host": "proxy.crawlbase.com", "session_time": 10 }
import requests

res = requests.get('https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN')
print(res.json())
const res = await fetch('https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN');
console.log(await res.json());
require 'net/http'

puts Net::HTTP.get(URI('https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN'))

Статический IP из конкретной страны

Передайте двухбуквенный код страны ISO 3166 (US, GB, DE, IT, RU, …), чтобы закрепить статический IP за этой географией. Если в запрошенной стране сейчас нет свободного порта, ответ содержит ошибку: подождите и повторите попытку с учётом ограничения по стране.

curl 'https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN&country=FR'

# Response
# { "port": 4551, "host": "proxy.crawlbase.com", "session_time": 10 }
import requests

res = requests.get('https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN&country=FR')
print(res.json())
const res = await fetch('https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN&country=FR');
console.log(await res.json());
require 'net/http'

puts Net::HTTP.get(URI('https://api.crawlbase.com/proxy/static?token=YOUR_TOKEN&country=FR'))

Whitelisting IP-адресов

Backconnect поддерживает whitelisting IP-адресов: исходящие IP вашего сервера могут аутентифицироваться на прокси без отправки token при каждом запросе. Полезно для конвейеров с фиксированными IP, где не хочется хранить учётные данные в коде, и это единственный способ использовать Backconnect из окружений, которые не могут передавать заголовок Proxy-Authorization.

Три endpoint'а, все под /proxy/whitelist_ips, различаются HTTP-методом. Изменения распространяются до 1 минуты.

Функция, зависящая от тарифа

Управление whitelist может быть доступно не на всех тарифах, и на каждом тарифе действует ограничение на количество одновременно whitelisted IP. Ответ unauthorized означает, что ваш уровень тарифа не включает эту функцию; обратитесь в поддержку для апгрейда.

Добавить IP в whitelist

POSThttps://api.crawlbase.com/proxy/whitelist_ips
curl -X POST 'https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123'
import requests

res = requests.post('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123')
print(res.text)
const res = await fetch('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123', {
  method: 'POST',
});
console.log(await res.text());
require 'net/http'

res = Net::HTTP.post(URI('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123'), nil)
puts res.body

Удалить IP из whitelist

DELETEhttps://api.crawlbase.com/proxy/whitelist_ips
curl -X DELETE 'https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123'
import requests

res = requests.delete('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123')
print(res.text)
const res = await fetch('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123', {
  method: 'DELETE',
});
console.log(await res.text());
require 'net/http'

uri = URI('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN&ip=123.123.123.123')
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.delete(uri.request_uri) }
puts res.body

Просмотр whitelisted IP

Возвращает текущий список whitelisted IP для вашего токена в JSON.

curl 'https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN'
import requests

res = requests.get('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN')
print(res.json())
const res = await fetch('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN');
console.log(await res.json());
require 'net/http'

puts Net::HTTP.get(URI('https://api.crawlbase.com/proxy/whitelist_ips?token=YOUR_TOKEN'))

Backconnect vs Smart AI Proxy

Smart AI ProxyBackconnect
Сценарий использованияПростой режим: авто-маршрутизация, обход анти-бот защитыПрямой доступ к пулу IP, кастомная ротация
JS-рендерингДоступенНет (сырой прокси)
Авто-повторДаНет: обрабатывайте сами
Sticky-сессииЧерез заголовокЧерез имя пользователя
Лучше всего дляБольшинства пользователейКастомных скраперов, сетевых исследований
Сначала выберите Smart AI Proxy

Backconnect представляет собой инструмент более низкого уровня. Если у вас нет конкретной причины использовать его, Smart AI Proxy даёт лучшие результаты с меньшими усилиями.