京牌小客车司法处置数据抓取与分析
概述
从北交互联网站(jpxkc.cbex.com)抓取京牌小客车司法处置数据,解析详情页中的标的权证情况、权利限制及瑕疵情况、车辆特征等全维度信息,生成可视化关联分析报告,指导竞拍决策。
网站结构与API
详见 references/website_structure.md,核心要点:
- 列表页API:
GET /page/jpxkc/zc_prjs/prj_li?id={ZCID}&pageNo={n}&pageSize=16,返回HTML片段 - 详情页:
https://jpxkc.cbex.com/jpxkc/prj/detail/{ITEM_ID}.html - 详情文本: 位于
<textarea id="content_BDWJS">中,包含四个段落:标的权证情况、标的现状、权利限制及瑕疵等情况、标的物介绍 - 成交机制: 所有标的均以最高限价成交(成交价 = 起始价 × 1.5)
工作流程
路径说明: 所有脚本使用当前工作目录下的
data/子目录作为输出路径。运行前需cd到目标项目根目录。如需自定义路径,修改脚本顶部的DATA_DIR变量。
第一步:抓取列表数据
执行 scripts/scrape_auction_list.py,批量抓取所有期次的标的列表。
脚本内置了10个期次的 ZCID 映射(202011~202606),支持断点续传(检查已有CSV并跳过)。
python3 scripts/scrape_auction_list.py
输出: data/{period}_jingpai_full.csv(各期单独) + data/all_periods_jingpai_full.csv(合并)
字段: period, item_id, plate, title, start_price, deal_price, max_price, bid_count, status, code, url
新增期次: 从首页HTML源码中查找新的 ZCID,添加到脚本 PERIODS 列表中:
PERIODS = [
("202606", "2400", 434),
# 新期次添加到这里
]
第二步:抓取详情页文本
执行 scripts/scrape_auction_details.py,逐个抓取详情页的"标的物调查情况表"全文。
python3 scripts/scrape_auction_details.py
- 15线程并发,每200条中间保存
- 输出:
data/all_periods_with_details.csv(在列表数据基础上增加detail_text字段)
第三步:解析全部字段并生成关联分析
执行 scripts/parse_and_analyze.py,从 detail_text 中解析所有字段(标的权证 + 权利限制 + 车辆特征),输出分析CSV和HTML报告。
python3 scripts/parse_and_analyze.py
输出:
data/all_periods_analysis_v3.csv— 完整分析数据(含标的物介绍10个维度+权证3项+权利限制9项,共40+字段)data/correlation_report_v3.html— 关联分析可视化报告
解析字段详见 references/data_schema.md。
第四步:生成趋势对比报告(可选)
执行 scripts/gen_trend_report.py,生成全10期趋势对比报告。
python3 scripts/gen_trend_report.py
输出: data/all_periods_report.html — 趋势图、散点图、品牌排行
第五步:个性化推荐(核心功能)
执行 scripts/recommend.py,根据用户偏好智能筛选和评分标的,输出个性化推荐列表。
# 交互式输入偏好
python3 scripts/recommend.py
# 使用预设策略
python3 scripts/recommend.py --preset conservative # 稳健捡漏型
python3 scripts/recommend.py --preset balanced # 均衡型
python3 scripts/recommend.py --preset aggressive # 品质优先型
# 使用JSON配置文件
python3 scripts/recommend.py --config prefs.json
推荐引擎工作原理:
- 筛选: 根据硬性约束(车龄、排放、违章、权证、停车费、报价次数、品牌、燃料)过滤不达标标的
- 三维评分: 每个标的从三个维度评分(0-100分)
- 价值分 — 同样的钱能买到多好的车(品牌、车龄、排放、燃料)
- 安全分 — 风险有多低(违章30分+权证20分+停车费15分+检验有效期15分+抵押10分+瑕疵10分)
- 中标分 — 竞争有多小(报价次数越少越容易中标)
- 加权排序: 按用户指定的权重计算综合得分,排序输出 Top 30 推荐
- 生成报告: 每个推荐附带推荐理由、三维评分可视化、详情页链接
输出:
data/recommendations.csv— 推荐列表(含排名、评分、推荐理由)data/recommendation_report.html— 可视化推荐报告
偏好参数详见 references/recommendation_model.md。
三种预设策略:
| 策略 | 适用人群 | 价值权重 | 安全权重 | 中标权重 | |------|---------|---------|---------|---------| | 稳健捡漏型 | 预算敏感、怕麻烦 | 20% | 50% | 30% | | 均衡型 | 大多数用户 | 40% | 30% | 30% | | 品质优先型 | 追求好车、不怕竞争 | 60% | 30% | 10% |
自定义偏好示例 (prefs.json):
{
"name": "我的策略",
"max_vehicle_age": 8,
"min_emission": "国V",
"max_violations": 0,
"require_all_certs": true,
"max_parking_fee": 3000,
"max_bid_count": 80,
"preferred_brands": ["奔驰", "宝马", "奥迪"],
"weight_value": 0.5,
"weight_risk": 0.3,
"weight_competition": 0.2
}
分析维度与关键发现
影响竞拍热度的核心因素(按影响程度排序)
| 因素 | 影响 | 数据 | |------|------|------| | 违章记录 | 极大 | 无违章68次 vs 10起+仅27次 | | 停车维修费 | 大 | 1万+仅28次(车况差/停放久) | | 行驶证 | 大 | 有55次 vs 无21次 | | 登记证 | 大 | 有56次 vs 无23次 | | 起始价 | 中 | 负相关 r=-0.357 | | 排放标准 | 中 | 国III 116次 vs 国VI 29次 | | 查封状态 | 小 | 几乎全查封,影响不显著 | | 抵押状况 | 小 | 法院承诺协助,影响不大 |
竞拍策略建议
基于数据分析,竞拍时关注以下信号:
- 优先选择三证齐全的车 — 平均55.8次报价,说明市场认可度高,但竞争也激烈
- 关注证件缺失的车 — 无行驶证/登记证的车平均仅21-23次报价,竞争少,法院承诺补办不影响过户,可能是"捡漏"机会
- 避开高违章车 — 10起+违章仅27次报价,后续处理成本高
- 注意停车维修费 — 超过1万元的车可能长期停放,车况存疑
- 老车竞争更激烈 — 国III排放车平均116次报价,因为起拍价低、性价比高
- 所有标的均以最高限价成交 — 报价次数反映竞争热度,但不影响成交价
技术注意事项
- 正则匹配: 起始价格式为
起始价:¥ 20,000.00(¥后有空格),正则用起始价[::]\s*[¥¥]\s*([\d,.]+) - 日期格式: 详情页有3种日期格式(
YYYY/M/D、YYYY年MM月DD日、YYYY-MM-DD),parse_date() 需全部支持 - 排放标准统一: 国V/国Ⅴ/国五 → 国V,国VI/国Ⅵ/国六 → 国VI
- 编码: CSV 用
utf-8-sig(带BOM),HTML 用utf-8 - HTML生成: Python f-string 与 JS 花括号冲突,用
json.dumps()预计算数据后字符串拼接 - macOS兼容: 不使用
grep -P,用 Python 处理正则
脚本说明
| 脚本 | 功能 | 输入 | 输出 |
|------|------|------|------|
| scripts/scrape_auction_list.py | 抓取列表页 | 无(内置期次配置) | CSV |
| scripts/scrape_auction_details.py | 抓取详情页文本 | all_periods_jingpai_full.csv | CSV (含detail_text) |
| scripts/parse_and_analyze.py | 解析字段+生成报告 | all_periods_with_details.csv | CSV + HTML |
| scripts/gen_trend_report.py | 生成趋势报告 | all_periods_jingpai_full.csv | HTML |
| scripts/recommend.py | 个性化推荐引擎 | all_periods_analysis_v3.csv + 用户偏好 | CSV + HTML |
参考文档
references/website_structure.md— 网站API、页面结构、数据格式、期次ZCID映射references/data_schema.md— CSV字段定义、分析维度、关键发现、竞价日期表references/recommendation_model.md— 推荐引擎偏好参数、三维评分模型、品牌识别列表
Scan to join WeChat group