62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
import os
|
|
import json
|
|
import re
|
|
import requests
|
|
|
|
# 定义文件名
|
|
JSON_FILE = "tvbox_config.json"
|
|
TARGET_FILE = "aowu.png"
|
|
|
|
def download_spider():
|
|
# 1. 检查 json 文件是否存在
|
|
if not os.path.exists(JSON_FILE):
|
|
print(f"[-] 未找到 {JSON_FILE},请确认解密脚本是否先运行成功。")
|
|
return
|
|
|
|
# 2. 读取 json 内容
|
|
try:
|
|
with open(JSON_FILE, "r", encoding="utf-8") as f:
|
|
config_data = json.load(f)
|
|
except Exception as e:
|
|
print(f"[-] 读取 JSON 文件失败: {e}")
|
|
return
|
|
|
|
# 3. 提取 spider 字段
|
|
spider_raw = config_data.get("spider", "")
|
|
if not spider_raw:
|
|
print("[-] JSON 中未找到 'spider' 字段,跳过下载。")
|
|
return
|
|
|
|
print(f"[+] 获取到原始 spider 字段: {spider_raw}")
|
|
|
|
# 4. 解析实际的下载链接 (去掉末尾的 ;md5;xxxx 等 TVBox 特有后缀)
|
|
# 比如: "https://xxx.png;md5;ccc..." -> "https://xxx.png"
|
|
download_url = spider_raw.split(";")[0].strip()
|
|
|
|
if not download_url.startswith("http"):
|
|
print(f"[-] 解析出的地址非有效 HTTP 链接: {download_url}")
|
|
return
|
|
|
|
print(f"[+] 解析出实际下载链接: {download_url}")
|
|
|
|
# 5. 下载文件并强制覆盖
|
|
try:
|
|
headers = {
|
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
|
|
}
|
|
print(f"[+] 开始下载最新 spider 文件...")
|
|
response = requests.get(download_url, headers=headers, timeout=30)
|
|
response.raise_for_status() # 如果状态码不是 200 会报错
|
|
|
|
# 强制覆盖写入根目录
|
|
with open(TARGET_FILE, "wb") as f:
|
|
f.write(response.content)
|
|
|
|
print(f"[+] 成功下载并强制覆盖为: {TARGET_FILE} (文件大小: {len(response.content)} 字节)")
|
|
|
|
except Exception as e:
|
|
print(f"[-] 下载或保存文件失败: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
download_spider()
|