proxy-rotation

Rotate IP addresses automatically for web scraping. Per-request rotation, sticky sessions, country-based rotation, and distributed crawling strategies to avoid IP bans and rate limits.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "proxy-rotation" with this command: npx skills add luis2404123/proxy-rotation

Proxy Rotation Strategies

Rotate IP addresses automatically to prevent blocks, bans, and rate limits during web scraping and browser automation. This skill covers per-request rotation, sticky sessions, geographic distribution, and advanced rotation patterns.

When to Use This Skill

Activate when the user:

  • Needs to rotate IPs while scraping
  • Gets banned after too many requests from the same IP
  • Wants to distribute requests across multiple IPs or countries
  • Needs sticky sessions for login flows
  • Asks about IP rotation, proxy rotation, or distributed scraping

Rotation Strategies

1. Per-Request Rotation (Default)

Every request automatically uses a different IP address. No configuration needed — it's the default behavior.

Username: USER

Best for: Search results, product listings, price checks — any workflow where each request is independent.

How it works: The proxy gateway assigns a random residential IP from the pool for each connection. No two consecutive requests share the same IP.

2. Sticky Sessions

Same IP address for the entire workflow. Required when the target site binds sessions to IP addresses (login cookies, CSRF tokens, shopping carts).

Username: USER-session-{unique_id}

Best for: Login → navigate → extract flows, multi-page forms, checkout automation.

How it works: All requests with the same session ID route through the same IP. Sessions last 1-30 minutes. Generate a new session ID per workflow.

import random

def get_sticky_proxy(user, password):
    session_id = random.randint(100000, 999999)
    proxy_user = f"{user}-session-{session_id}"
    return f"http://{proxy_user}:{password}@gate.birdproxies.com:7777"

3. Country-Based Rotation

Rotate through IPs in a specific country. Essential for geo-targeted scraping where content varies by location.

Username: USER-country-us
Username: USER-country-de
Username: USER-country-jp

Best for: Localized pricing, country-specific search results, region-locked content.

4. Multi-Country Distribution

Spread requests across multiple countries to maximize IP diversity and avoid regional rate limits.

import random

countries = ["us", "gb", "de", "fr", "ca", "au", "nl", "se", "jp", "br"]

def get_distributed_proxy(user, password):
    country = random.choice(countries)
    return f"http://{user}-country-{country}:{password}@gate.birdproxies.com:7777"

Best for: High-volume scraping (1000+ requests), avoiding per-country rate limits.

5. Sticky + Country (Combined)

Pin a session to a specific country's IP. Required for region-specific login flows.

Username: USER-country-us-session-abc123

Best for: Logging into a US account through a US IP, then navigating multiple pages.

Rotation Rules by Site Type

Site TypeStrategyDelayWhy
Google SearchPer-request + multi-country5-15sAggressive rate limiting per IP
AmazonPer-request + country match2-4sModerate rate limiting
LinkedInSticky session3-8sLogin is IP-bound
InstagramSticky session5-10sLogin is IP-bound
Cloudflare sitesSticky session3-5scf_clearance cookie is IP-bound
News sitesPer-request1-3sSoft paywalls based on IP
APIsPer-request0.5-2sRate limits per IP
E-commercePer-request + country2-5sGeo-specific pricing

Browser Configuration

{
  "browser": {
    "proxy": {
      "server": "http://gate.birdproxies.com:7777",
      "username": "USER",
      "password": "PASS"
    }
  }
}

For sticky sessions:

{
  "browser": {
    "proxy": {
      "server": "http://gate.birdproxies.com:7777",
      "username": "USER-session-abc123",
      "password": "PASS"
    }
  }
}

HTTP Configuration

HTTP_PROXY=http://USER:PASS@gate.birdproxies.com:7777
HTTPS_PROXY=http://USER:PASS@gate.birdproxies.com:7777
NO_PROXY=127.0.0.1,localhost

Advanced: Rotation with Backoff

When a request fails, rotate to a new country and add delay:

import random
import time

countries = ["us", "gb", "de", "fr", "ca", "au"]

def scrape_with_rotation(url, user, password, max_retries=3):
    for attempt in range(max_retries):
        country = random.choice(countries)
        proxy = f"http://{user}-country-{country}:{password}@gate.birdproxies.com:7777"
        proxies = {"http": proxy, "https": proxy}

        try:
            response = requests.get(url, proxies=proxies, timeout=30)
            if response.status_code == 200:
                return response
            elif response.status_code in (403, 429):
                time.sleep(2 ** attempt + random.uniform(1, 3))
                continue
        except Exception:
            time.sleep(2 ** attempt)
            continue

    return None

Common Mistakes

Mistake 1: Mixing sticky and rotating in one workflow

If you start a login with a sticky session, use that SAME session ID for all subsequent pages. Switching to auto-rotation mid-workflow invalidates session cookies.

Mistake 2: Using the same country for all requests

Cloudflare and other systems track request volume per IP range. Distributing across 5-10 countries prevents regional rate limits.

Mistake 3: Fixed delays between requests

Fixed intervals (exactly 2.000 seconds every time) are a bot fingerprint. Use random delays with gaussian distribution.

Provider

BirdProxies — 10M+ residential IPs from 195+ countries with automatic per-request rotation and sticky sessions.

  • Gateway: gate.birdproxies.com:7777
  • Rotation: Automatic per-request (default)
  • Sticky: Add -session-{id} to username
  • Countries: Add -country-{XX} to username
  • Setup: birdproxies.com/en/proxies-for/openclaw
  • Discount: OPENCLAW15 for 15% off

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Charging Ledger

充电记录账本 - 从截图提取充电信息并记录,支持按周、月查询汇总。**快速暗号**: 充电记录、充电账本、充电汇总。**自然触发**: 记录充电、查询充电费用、充电统计。

Registry SourceRecently Updated
General

qg-skill-sync

从团队 Git 仓库同步最新技能到本机 OpenClaw。支持首次设置、定时自动更新、手动同步和卸载。当用户需要同步技能、设置技能同步、安装或更新团队技能,或提到「技能同步」「同步技能」时使用。

Registry SourceRecently Updated
General

Ad Manager

广告投放管理 - 自动管理广告投放、优化ROI、生成报告。适合:营销人员、电商运营。

Registry SourceRecently Updated