本程序采用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文件放入即可。(如图)

作者后续可能会编写自动安装下载好的补丁的程序。