match_all.py为在json补充xkw_code字段的脚本, check_xkw_codes.py为检查xkw_code与url_id不一致的脚本
This commit is contained in:
48
zq/check_xkw_codes.py
Normal file
48
zq/check_xkw_codes.py
Normal file
@@ -0,0 +1,48 @@
|
||||
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}")
|
||||
Reference in New Issue
Block a user