
myauto.ge 使用前端框架(如 react)构建,页面初始 html 仅含空 `
`,真实数据通过 ajax 从 api 接口(如 `https://api2.myauto.ge/ka/products/{id}`)异步加载。直接用 `requests` 获取 html 无法获取渲染后内容,需绕过 ssr,直连其后端 api。MyAuto.ge 是一个典型的单页应用(SPA),其网页在首次加载时返回的是一个极简的 HTML 骨架(即“shell”),所有商品详情、价格、联系方式等核心数据均通过 JavaScript 在浏览器中发起额外的 API 请求动态获取并渲染。这也是为什么你在 Chrome 开发者工具中看到完整结构——那是 JS 执行后的 DOM;而 requests.get() 仅获取原始响应,不执行 JS,因此只拿到未渲染的初始 HTML。
✅ 正确做法:跳过 HTML 解析,直接调用其真实数据接口
通过分析浏览器 Network 面板(推荐过滤 XHR/Fetch),可发现该页面实际从以下地址加载结构化 JSON 数据:
https://api2.myauto.ge/ka/products/89476234
其中 89476234 即 URL 路径中的商品 ID。该接口返回标准 JSON,字段清晰、无需解析 HTML,稳定性与性能远优于模拟浏览器。
立即学习“Java免费学习笔记(深入)”;
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
以下是推荐的 Python 实现代码:
import requests
import json
# 提取商品 ID(可从原始 URL 中正则或字符串分割获取)
product_id = "89476234"
api_url = f"https://api2.myauto.ge/ka/products/{product_id}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Accept": "application/json",
"Referer": "https://www.myauto.ge/",
}
try:
response = requests.get(api_url, headers=headers, timeout=10)
response.raise_for_status() # 抛出 HTTP 错误异常
data = response.json()
# 示例:提取关键字段
info = data.get("data", {}).get("info", {})
title = info.get("title", "N/A")
price = info.get("price", "N/A")
phone = info.get("client_phone", "N/A")
city = info.get("city_name", "N/A")
print(f"标题: {title}")
print(f"价格: {price} ლარი")
print(f"联系电话: {phone}")
print(f"城市: {city}")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
except json.JSONDecodeError:
print("响应非有效 JSON,请检查接口是否变更或需登录")⚠️ 注意事项:
- 不要硬编码 User-Agent:定期更新为当前主流浏览器 UA,避免被服务端识别为爬虫拦截;
- 添加 Referer 和 Accept 头:部分 API 会校验来源,缺失可能导致 403;
- ID 提取自动化:可通过 re.search(r'/pr/(\d+)/', url) 安全提取 ID,提升脚本通用性;
- 错误处理必须完备:API 可能返回 404(商品下架)、429(限流)或结构变更,建议加入重试机制与日志;
- 遵守 robots.txt 与网站条款:MyAuto.ge 未明确禁止公开数据爬取,但应控制请求频率(建议 ≥2 秒间隔),避免对服务造成压力。
? 总结:面对 SPA 网站,优先逆向分析 XHR 请求,而非强行渲染 HTML。直连 API 不仅高效、稳定,还能获得更干净、结构化的数据,是现代 Web Scraping 的最佳实践路径。









