The problem
Retailers show different prices, currencies, promotions and delivery dates depending on the visitor's country, and many protect product pages against automated collection.
Reliable monitoring needs requests from residential addresses in each market, spread over time so that daily checks of thousands of products stay below anti-bot thresholds.
Configuration
- Product
- Rotating residential, billed per GB
- Rotation
- Per request
- Targeting
- -country-<cc> per storefront (de, fr, es, it…)
- Scheduling
- Spread checks over the day instead of one nightly burst
- Payload
- Prefer product JSON endpoints or structured data over full pages
- Typical volume
- A product page weighs 0.5–2 MB uncompressed; compression divides it several times
Example
import requests
LOGIN, PASSWORD = "px7h2k9m4q", "Rq4Tn8Vw2Lx6Bz9C"
STOREFRONTS = {
"de": "https://shop.example.de/p/4011",
"fr": "https://shop.example.fr/p/4011",
"es": "https://shop.example.es/p/4011",
}
for country, url in STOREFRONTS.items():
proxy = f"http://{LOGIN}-country-{country}:{PASSWORD}@resi.gw.proxuno.com:7000"
r = requests.get(
url,
headers={"Accept-Encoding": "gzip, br"},
proxies={"http": proxy, "https": proxy},
timeout=30,
)
print(country, r.status_code, len(r.content))
Example credentials. Replace them with yours from the dashboard.
Best practices
- Target the storefront's own country; cross-border visits often trigger redirects or different prices.
- Fetch structured data (JSON-LD, product APIs used by the page) to cut traffic per product.
- Detect soft blocks — a 200 response with a CAPTCHA page — and count them as failures.
- Keep a per-domain request budget and adjust it to the observed success rate.
Compliance
Collect public product information only. Do not create fake orders or hold stock in carts, and respect the retailer's terms of use.