You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从GitHub提取目标文本?版本检测脚本误触发更新求助

问题分析与解决

问题根源

  • 你使用的是GitHub的网页预览链接(blob地址),该地址返回的是完整的GitHub页面HTML代码,而非你文件中存储的"0.5"内容,从你打印出的b'<!DOCTYPE html>...'就能验证这一点。
  • URL.read()返回的是字节类型(bytes),而currentVersion是字符串类型,直接进行比对必然不相等。
  • 即使获取到正确内容,文件中可能存在的换行、空格等空白字符,也会导致比对失败。

解决步骤

  1. 替换为GitHub raw文件链接:将地址中的blob/main替换为raw/main,比如你的文件链接应改为https://github.com/Hardcorekila/updater/raw/main/0.5.html,这个链接会直接返回文件的原始内容。
  2. 处理数据类型与空白字符:将字节数据解码为字符串,再用.strip()去除首尾的换行、空格等空白字符,确保比对的准确性。
  3. 优化请求逻辑:统一使用requests库处理网络请求,同时添加异常处理,避免网络问题导致程序崩溃。

修改后的代码

import requests

currentVersion = "0.5"
# 使用raw文件链接获取版本内容
version_url = 'https://github.com/Hardcorekila/updater/raw/main/0.5.html'

try:
    # 获取远程版本并处理格式
    version_response = requests.get(version_url)
    version_response.raise_for_status()
    remote_version = version_response.text.strip()
    
    print(f"远程版本: {remote_version}")
    if remote_version == currentVersion:
        print("App已更新到最新版本!")
    else:
        print("App不是最新版本,正在下载新版本...")
        # 下载最新程序文件
        exe_url = "https://github.com/Hardcorekila/updater/raw/main/main.exe"
        exe_response = requests.get(exe_url)
        exe_response.raise_for_status()
        with open("main.exe", "wb") as f:
            f.write(exe_response.content)
        print("新版本下载完成!")
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")

内容的提问来源于stack exchange,提问作者Cave Johnson123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:35:27