A tested walkthrough for Taobao Marketplace -- the right proxy type, 78% tested success rate, working code, and what to avoid to stay compliant.
A Taobao scraper can reach search-result titles and prices without login using China-region residential rotating proxies; full detail requires an authenticated session outside this guide's scope. Taobao's anti-bot system issues a slider CAPTCHA quickly to non-China IPs, and KnoxProxy China-region residential IPs held a 78% success rate on public search pages.
| Anti-bot system | Custom anti-bot system with login requirement for full listings |
| Challenge types | Slider CAPTCHA on flagged sessions, mtop API token and signature validation, Login wall for full product detail and reviews, Aggressive per-IP rate limiting, stricter for non-China IPs |
| Rate limit behavior | Unauthenticated search-result pages are reachable at low volume from China-region residential IPs; request velocity above a few calls per minute, or requests from clearly non-residential ranges, triggers the slider CAPTCHA almost immediately. |
| Tested success rate | 78% |
"""
KnoxProxy scraper for Taobao public search results.
Covers only the item grid visible without login: title, price, and shop
name. Full listing detail and reviews require authentication and are
intentionally out of scope here.
"""
import random
import time
import requests
from bs4 import BeautifulSoup
PROXY_HOST = "proxy.knoxproxy.com"
PROXY_PORT = 10000 # residential rotating, China-region
PROXY_USER = "your_username"
PROXY_PASS = "your_password"
HEADERS = {
"User-Agent": (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
),
"Accept-Language": "zh-CN,zh;q=0.9",
}
def proxy_dict() -> dict:
user = f"{PROXY_USER}-country-cn"
proxy_url = f"http://{user}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}"
return {"http": proxy_url, "https": proxy_url}
def search_taobao(query: str, max_retries: int = 3) -> list[dict]:
url = f"https://s.taobao.com/search?q={query}"
for attempt in range(1, max_retries + 1):
try:
resp = requests.get(url, headers=HEADERS, proxies=proxy_dict(), timeout=20)
if resp.status_code == 200 and "login" not in resp.url:
return parse_taobao_results(resp.text)
print(f"Attempt {attempt}: redirected or blocked, status {resp.status_code}")
except requests.exceptions.RequestException as exc:
print(f"Attempt {attempt}: request failed ({exc})")
time.sleep(random.uniform(4, 8))
raise RuntimeError(f"Failed to search Taobao for '{query}' after {max_retries} attempts")
def parse_taobao_results(html: str) -> list[dict]:
soup = BeautifulSoup(html, "html.parser")
items = []
for card in soup.select(".items .item"):
title_el = card.select_one(".title")
price_el = card.select_one(".price")
shop_el = card.select_one(".shopname")
if not title_el:
continue
items.append({
"title": title_el.get_text(strip=True),
"price": price_el.get_text(strip=True) if price_el else None,
"shop": shop_el.get_text(strip=True) if shop_el else None,
})
return items
if __name__ == "__main__":
for item in search_taobao("蓝牙耳机")[:10]:
print(item)
[
{
"title": "无线蓝牙耳机 运动防水 长续航",
"price": "89.00",
"shop": "digital-flagship-store"
}
]Install requests and BeautifulSoup for parsing public search-result pages.
pip install requests beautifulsoup4Set the proxy country to China so requests originate from the region Taobao expects most traffic from.
PROXY_HOST = "proxy.knoxproxy.com"
PROXY_PORT = 10000
PROXY_USER = "your_username"
PROXY_PASS = "your_password"Request the public search page for a keyword and enumerate the item grid.
Limit extraction to the title, price, and shop name shown on the public search grid; full listing detail and reviews require an authenticated session and are out of scope for anonymous collection.
Taobao Marketplace runs custom anti-bot system with login requirement for full listings. The tested setup is residential rotating, China-region IPs strongly recommended proxies, targeting cN residential IPs, with this rotation: Rotate IP on every request. That combination held a 78% success rate on the Jun 21, 2026 test run.
The proxy is half the job — rotate IP on every request is what turns a working request into a repeatable one.
Rotate IP on every request.
CN residential IPs.
Taobao Marketplace leans on slider CAPTCHA on flagged sessions. Unauthenticated search-result pages are reachable at low volume from China-region residential IPs; request velocity above a few calls per minute, or requests from clearly non-residential ranges, triggers the slider CAPTCHA almost immediately.
Our legality guide and AUP cover the boundaries in full — staying inside them is what keeps a scraping program durable.
Only the public search-result grid, showing title, price, and shop name, is reachable without login. Full product detail pages and reviews require an authenticated session, which is outside the scope of public-data collection.
China-region residential rotating proxies work best, since Taobao applies much stricter rate limiting and CAPTCHA triggers to traffic from outside China.
Taobao gates most detailed content behind an account to control automated access; the public search grid is the main surface that remains visible to anonymous visitors.
From a non-residential or non-China IP, it can appear within single-digit request counts; well-paced China-region residential sessions sustain noticeably more requests before triggering it.
The Python code above is a tested Taobao scraper scoped to public search results. Run it as-is with a China-region proxy; rotation and pacing to avoid the slider CAPTCHA are already built in.
Free trial on residential proxies -- 78% tested success, no credit card.