--- name: jd-fapai-scrape description: 抓取京东法拍房搜索结果并支持增量更新。通过 Playwright 渲染京东法拍 H5 页面,拦截 API 响应,提取完整房源数据。支持项目链接、拍卖轮次、智能增量更新(遇到已知数据即停止,不全量下载)。 --- # 京东法拍房源抓取 ## 用途 从京东司法拍卖频道搜索结果页抓取全部房源信息: - 房源标题与地址(完整不截断) - 项目链接(`https://m.jd.com/product/{skuId}.html`) - 起拍价 / 当前价 / 均价 - 户型 / 面积 / 用途 / 小区名称 - 拍卖轮次(一拍/二拍/变卖,从 API 标签或折扣率推断) - 拍卖状态 / 出价次数 / 围观人数 - 拍卖开始与结束时间 - 增量追踪字段(`_first_seen` / `_last_seen`) ## 前置条件 ```bash pip install playwright python3 -m playwright install chromium # 或 apt install chromium-browser ``` ## 使用方法 ### 首次抓取 ```bash # 默认抓取塘厦镇 python3 skills/jd-fapai-scrape/scrape.py # 抓取东莞市全部法拍房(~4000 条,约 3 分钟) python3 skills/jd-fapai-scrape/scrape.py --keyword 东莞市 --output-dir ../法拍/data # 自定义参数 python3 skills/jd-fapai-scrape/scrape.py --keyword 长安 --sort-field 11 --cate-id 15 ``` ### 增量更新 ```bash # 加 -i 标志,只下载新房源,遇到已知 paimaiId 即停止 python3 skills/jd-fapai-scrape/scrape.py --keyword 东莞市 --output-dir ../法拍/data -i ``` 增量模式的智能行为: - 读取已有 `{keyword}_法拍房源.json` 中的所有 `paimaiId` - 按最新发布排序加载(`spo_sortField=11`) - **每加载一批(~40 条)检查是否全部已知**,如果是则立即停止 - 典型增量更新只需加载 1-2 批(~30 秒),而非全量下载 100 批(~3 分钟) - 新房源添加 `_first_seen` 和 `_last_seen` 时间戳 - 已有房源更新可变字段(当前价、状态、出价次数等)并刷新 `_last_seen` ## 去重机制 **去重 key = `paimaiId`(拍卖ID)** - 每次拍卖有唯一的 `paimaiId`,同一房产的一拍和二拍是不同的 `paimaiId`,各自保留 - 不会因为标题相同而合并不同拍卖轮次 - `paimaiId` 对应唯一的详情页 URL(`https://m.jd.com/product/{skuId}.html`),等价于按 URL 去重 ## 命令行参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `--keyword` | 塘厦 | 搜索关键词 | | `--cate-id` | 15 | 类目 ID(15=法拍房) | | `--sort-field` | 11 | 排序(11=最新发布) | | `--max-scrolls` | 100 | 最大滚动次数 | | `--output-dir` | . | 输出目录 | | `--incremental` / `-i` | false | 增量更新模式 | ## 输出文件 | 文件 | 内容 | |------|------| | `{keyword}_法拍房源.csv` | CSV 表格(26 列,最新发布在前) | | `{keyword}_法拍房源.json` | 完整原始 JSON(含增量追踪字段) | | `{keyword}_增量日志.log` | 每次增量更新的新增/变更记录(仅增量模式) | ### CSV 列说明 | 列 | 说明 | |----|------| | 序号 / 拍卖ID / SKU ID | 唯一标识 | | 标题 | 完整房产标题 | | **项目链接** | `https://m.jd.com/product/{skuId}.html` | | 位置 / 用途 / 户型 / 面积(㎡) / 小区 / 均价 | 房产属性 | | 起拍价 / 当前价 / 折扣率 | 价格信息 | | **拍卖轮次** | 一拍/二拍/变卖(API 标签或折扣率推断) | | **标签** | 全部标签(诉讼资产、低于评估价等) | | 状态 / 出价次数 / 围观人数 | 拍卖状态 | | 开始时间 / 结束时间 | 拍卖时间 | | 拍卖类型 | 司法拍卖等 | | **首次发现** / **最后更新** | 增量追踪时间戳 | ## 工作原理 1. **Playwright 渲染**:headless Chromium 打开京东法拍 H5 页面 2. **SSR 数据提取**:页面加载后从 `