本程序采用python编写,包含库:beautifulsoup(爬虫),win32(系统提示)等
解决QQ飞车自更新程序不启动,不进行更新等问题。
如果QQ飞车有更新就会开机提示并自动下载,下载完成后提示。
没有更新就不会显示任何提示(可以自己修改代码)
直接上代码:
import sys
import requests
from bs4 import BeautifulSoup
import urllib.request
import win32api
import win32con
URL = "http://speed.qq.com/web202204/download.shtml" #网址
r = requests.get(URL) #获取请求
soup = BeautifulSoup(r.content,'html.parser') #获取对象并解析
with open("A:/WeGameApps/QQ飞车/ver.ini", "r")as f: #获取当前版本
res = f.readlines()[1]
vernow=res.split('=')[1]
table = soup.find('table',{'class': 'patch_table'})
rows=table.find('tbody').find_all('tr')
i=0
while i>=0:
latest=rows[i]
latestver=latest.find('td',{'class': 'pt_01'}).get_text() #获取版本号
latestexe=latest.find_all('a')[1].get('href') #获取版本安装包
fver=latestver.split('—')[0].split('Ver')[1] #前版本
bver=latestver.split('—')[1].split('Ver')[1] #后版本
if(int(vernow)==int(bver)):break
if(i==0):win32api.MessageBox(0,"您的飞车正在下载最新安装包","下载中......",win32con.MB_OK)
filename=latestver+'.exe'
latestexe=latestexe[:4]+latestexe[5:]
urllib.request.urlretrieve(latestexe,"F:/SpeedQQdowload/"+filename) #下载文件到桌面
i=i+1
if(int(vernow)==int(fver)):break
if i>=1:
win32api.MessageBox(0,"您的QQ飞车新版本下载完毕","✔下载完成✔",win32con.MB_OK)
sys.exit()
有以下几个需要修改的地方:
修改1
with open("A:/WeGameApps/QQ飞车/ver.ini", "r")as f: #获取当前版本
res = f.readlines()[1]
vernow=res.split('=')[1]
open里需要找到QQ飞车的ver.ini文件进行版本校对。
"A:/wegamaapps/"根据自己的安装文件位置修改,最好是绝对路径。
右击自己QQ飞车即可找到对应路径。
修改2
urllib.request.urlretrieve(latestexe,"F:/SpeedQQdowload/"+filename)
此处是下载文件的存放路径,我存放的是桌面下的(F:/SpeedQQdowload/)文件夹
可以更改为自己的存放路径
下载完成如图所示:
代码更改后建议打包为.exe程序作为开机项启动
打包过程参考:http://t.csdnimg.cn/KYTe9
开机项启动可以直接在资源管理器的地址栏中输入,将打包好的EXE文件放入即可。(如图)
作者后续可能会编写自动安装下载好的补丁的程序。