
Anh Tuan
Data Science Expert

Các nền tảng ô tô được hỗ trợ bởi AI cần dữ liệu danh sách xe thực tế — giá cả, số km, tính năng, thông tin đại lý và xu hướng thị trường — từ các trang rao vặt, kho hàng đại lý và nền tảng đấu giá. Những trang này sử dụng bảo vệ CAPTCHA mạnh mẽ, chặn việc thu thập dữ liệu tự động. Hướng dẫn này sẽ hướng dẫn bạn xây dựng luồng dữ liệu danh sách xe cho các tác nhân AI bằng cách sử dụng CapSolver để duy trì truy cập liên tục vào các nền tảng như AutoTrader, Cars.com, CarGurus và hệ thống kho hàng đại lý.
Thị trường xe cũ xử lý hơn 800 tỷ USD giao dịch hàng năm chỉ tại Mỹ. Giá cả thay đổi rất nhanh — cùng một mẫu xe có thể chênh lệch 20-30% giữa các đại lý trong cùng một khu vực. Các tác nhân AI cung cấp định giá chính xác, phát hiện hàng tồn kho bị định giá thấp hoặc đề xuất thời điểm mua sắm tối ưu cần truy cập liên tục vào dữ liệu danh sách trên nhiều nền tảng.
Các trang rao vặt ô tô bảo vệ dữ liệu một cách mạnh mẽ vì nó là hoạt động cốt lõi của họ. Dữ liệu thị trường của Cox Automotive cho thấy giá xe thay đổi hàng ngày dựa trên cung, cầu và mô hình mùa vụ. Khi một tác nhân AI cố gắng thu thập dữ liệu quy mô lớn, nó sẽ kích hoạt các thử thách xác minh làm dừng luồng.
Các triển khai CAPTCHA phổ biến bao gồm reCAPTCHA v2 trên trang kết quả tìm kiếm, Cloudflare Turnstile trên các nền tảng hiện đại và các thử thách tùy chỉnh trên hệ thống quản lý đại lý. Không có giải CAPTCHA tự động, các tác nhân AI không thể duy trì độ mới của dữ liệu cần thiết cho thông tin thị trường chính xác.
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install aiohttp beautifulsoup4 pandas
export CAPSOLVER_API_KEY="your-capsolver-api-key"
Yêu cầu bổ sung:
AUTOMOTIVE_PLATFORMS = {
"autotrader": {
"name": "AutoTrader",
"captcha_type": "ReCaptchaV2TaskProxyLess",
"trigger": "after_50_searches",
"data": ["year", "make", "model", "price", "mileage", "dealer", "vin", "features"]
},
"cargurus": {
"name": "CarGurus",
"captcha_type": "AntiTurnstileTaskProxyLess",
"trigger": "rate_limit_80_per_hour",
"data": ["price", "deal_rating", "mileage", "dealer_rating", "days_on_market"]
},
"cars_com": {
"name": "Cars.com",
"captcha_type": "ReCaptchaV2TaskProxyLess",
"trigger": "after_40_listing_views",
"data": ["price", "mileage", "features", "dealer", "history_report", "photos"]
},
"facebook_marketplace": {
"name": "Facebook Marketplace",
"captcha_type": "ReCaptchaV2TaskProxyLess",
"trigger": "behavioral_and_rate",
"data": ["price", "mileage", "location", "seller_type", "description"]
}
}
import asyncio
from capsolver_core import create_capsolver, CaptchaType, CaptchaInfo
from dataclasses import dataclass
from typing import Optional
@dataclass
class VehicleListing:
vin: Optional[str]
year: int
make: str
model: str
price: float
mileage: int
dealer: str
location: str
days_on_market: int
platform: str
url: str
class VehicleDataCollector:
"""Thu thập dữ liệu danh sách xe với xử lý CAPTCHA."""
def __init__(self, api_key: str, proxies: list):
self.cap = create_capsolver(api_key=api_key)
self.proxies = proxies
self.proxy_idx = 0
async def search_vehicles(self, make: str, model: str, year_range: tuple,
location: str, platform: str = "autotrader") -> list:
"""Tìm kiếm danh sách xe với xử lý CAPTCHA."""
proxy = self.proxies[self.proxy_idx % len(self.proxies)]
self.proxy_idx += 1
html = await self._fetch_search(platform, make, model, year_range, location, proxy)
if self._is_captcha(html):
token = await self._solve(platform)
html = await self._retry(platform, make, model, year_range, location, proxy, token)
return self._parse_listings(html)
async def _solve(self, platform_key: str) -> str:
config = AUTOMOTIVE_PLATFORMS[platform_key]
type_map = {
"ReCaptchaV2TaskProxyLess": CaptchaType.RECAPTCHA_V2,
"AntiTurnstileTaskProxyLess": CaptchaType.CLOUDFLARE
}
info = CaptchaInfo(
type=type_map[config["captcha_type"]],
website_url=f"https://www.{platform_key.replace('_', '')}.com",
website_key=config.get("site_key", "")
)
solution = await self.cap.solve(info)
return solution.token
async def monitor_market(self, make: str, model: str, region: str) -> dict:
"""Theo dõi giá cả thị trường cho một chiếc xe cụ thể."""
all_listings = []
for platform in ["autotrader", "cargurus", "cars_com"]:
listings = await self.search_vehicles(make, model, (2020, 2024), region, platform)
all_listings.extend(listings)
await asyncio.sleep(5)
prices = [l.price for l in all_listings if l.price > 0]
return {
"make_model": f"{make} {model}",
"total_listings": len(all_listings),
"avg_price": sum(prices) / len(prices) if prices else 0,
"min_price": min(prices) if prices else 0,
"max_price": max(prices) if prices else 0,
"platforms_checked": 3
}
async def close(self):
await self.cap.aclose()
| Trường hợp sử dụng | Dữ liệu cần thiết | Tần suất cập nhật | Giá trị |
|---|---|---|---|
| Định giá xe | Danh sách so sánh, số km, tình trạng | Hàng ngày | Giá mua/bán chính xác |
| Đánh giá giao dịch | Giá so với giá trung bình thị trường, số ngày trên thị trường | Thời gian thực | Phát hiện xe bị định giá thấp |
| Thời điểm thị trường | Xu hướng giá trong 30-90 ngày | Hàng tuần | Thời điểm mua sắm tối ưu |
| Cảnh báo kho hàng | Danh sách mới phù hợp với tiêu chí | Mỗi 2-4 giờ | Lợi thế người đi đầu |
| Mô hình suy giảm giá trị | Giá lịch sử theo độ tuổi/số km | Hàng tháng | Phân tích đầu tư |
| Phạm vi theo dõi | Tìm kiếm hàng ngày | CAPTCHA hàng tháng | Chi phí hàng tháng |
|---|---|---|---|
| 5 mẫu xe, 1 khu vực | ~45 | ~135 | 0,27–0,41 USD |
| 20 mẫu xe, 3 khu vực | ~360 | ~1.080 | 2,16–3,24 USD |
| 100 mẫu xe, 5 khu vực | ~3.000 | ~9.000 | 18–27 USD |
Nhận Mã Khuyến mãi: Sử dụng mã WEBS tại Bảng điều khiển CapSolver để nhận thêm 5% khuyến mãi cho mỗi lần nạp tiền.
Hướng dẫn thu thập dữ liệu web bằng CapSolver đề cập đến các mô hình cơ sở hạ tầng cho thu thập quy mô lớn. Đối với các nền tảng được bảo vệ bởi Cloudflare, tài liệu Turnstile cung cấp chi tiết triển khai. FAQ CapSolver giải đáp các câu hỏi phổ biến về thu thập dữ liệu.
Việc thu thập dữ liệu danh sách xe cho các tác nhân AI đòi hỏi xử lý các hệ thống CAPTCHA đa dạng trên các nền tảng ô tô. CapSolver cung cấp cơ sở hạ tầng giải CAPTCHA thống nhất, vượt qua reCAPTCHA và Cloudflare Turnstile trong 3-12 giây, cho phép theo dõi thị trường quy mô lớn. Dữ liệu thu thập được thúc đẩy các tác nhân AI cung cấp định giá chính xác, phát hiện giao dịch và đưa ra lời khuyên về thời điểm thị trường.
Tất cả các nền tảng chính sử dụng hệ thống CAPTCHA tiêu chuẩn: AutoTrader, CarGurus, Cars.com, Edmunds, KBB, Facebook Marketplace và các trang kho hàng đại lý. Mỗi nền tảng đều yêu cầu xác định tham số CAPTCHA cụ thể.
Có. Dữ liệu danh sách đa nền tảng với các yếu tố số km, tình trạng và vị trí cho phép các tác nhân AI tạo ra định giá trong phạm vi 5-10% giá trị thị trường thực tế. Yếu tố quan trọng là thu thập đủ số lượng danh sách so sánh (trên 20) cho mỗi định giá.
Với 20 mẫu xe trên 3 nền tảng có tỷ lệ CAPTCHA 30%, khoảng 1.080 CAPTCHA mỗi tháng với giá 2-3 USD cho 1.000 lần giải, chi phí giải là 2,16–3,24 USD mỗi tháng. Tổng chi phí cơ sở hạ tầng dưới 25 USD/tháng bao gồm proxy.
Học kiến trúc gỡ mã web Rust có thể mở rộng với reqwest, scraper, gỡ mã bất đồng bộ, gỡ mã trình duyệt không đầu, xoay proxy và xử lý CAPTCHA tuân thủ.

Tự động hóa việc giải CAPTCHA với Nanobot và CapSolver. Sử dụng Playwright để giải reCAPTCHA và Cloudflare tự động.
