49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import json
|
|
import re
|
|
import os
|
|
from pathlib import Path
|
|
|
|
jsons_dir = Path(__file__).parent / "jsons"
|
|
output_file = Path(__file__).parent / "mismatched_codes.json"
|
|
|
|
mismatches = []
|
|
|
|
for json_file in sorted(jsons_dir.glob("*.json")):
|
|
with open(json_file, encoding="utf-8") as f:
|
|
data = json.load(f)
|
|
|
|
for item in data.get("items", []):
|
|
url = item.get("url", "")
|
|
xkw_code = item.get("xkw_code", "")
|
|
|
|
if "www.zxxk.com" not in url:
|
|
continue
|
|
|
|
# Extract numeric ID from URL (e.g. /soft/38079968.html or ?id=38079968)
|
|
match = re.search(r"[\\/](\d+)(?:\.\w+)?(?:\?|$)", url)
|
|
if not match:
|
|
match = re.search(r"[?&](?:id|soft)=(\d+)", url)
|
|
|
|
if not match:
|
|
continue
|
|
|
|
url_id = match.group(1)
|
|
|
|
if str(xkw_code) == "0":
|
|
continue
|
|
|
|
if url_id != str(xkw_code):
|
|
mismatches.append({
|
|
"source_file": json_file.name,
|
|
"filename": item.get("filename", []),
|
|
"title": item.get("title", ""),
|
|
"url": url,
|
|
"url_id": url_id,
|
|
"xkw_code": xkw_code,
|
|
})
|
|
|
|
with open(output_file, "w", encoding="utf-8") as f:
|
|
json.dump(mismatches, f, ensure_ascii=False, indent=2)
|
|
|
|
print(f"检查完成:共发现 {len(mismatches)} 条不一致记录,已输出到 {output_file}")
|