WINRAR自动查找官方最新中文无广告版并下载脚本

news/2025/1/11 15:47:27/文章来源:https://www.cnblogs.com/gnz48/p/18665779
import requests
import re
from datetime import datetime, timedelta# 目标网页 URL
url = 'https://www.rarlab.com/'# 发送 HTTP GET 请求获取网页内容
response = requests.get(url)
response.raise_for_status()  # 确保请求成功# 使用正则表达式查找连接文字为“Chinese Simplified”的下载链接
pattern = r'href="(/rar/winrar-x64-[^"]+sc\.exe)"[^>]*>Chinese Simplified<'
match = re.search(pattern, response.text, re.IGNORECASE)if match:# 补全下载链接download_link = f"https://www.rarlab.com{match.group(1)}"print(f"找到下载链接: {download_link}")# 发送 HTTP HEAD 请求获取文件的服务器时间head_response = requests.head(download_link)server_date = head_response.headers.get('Last-Modified')if server_date:# 将服务器时间转换为 datetime 对象server_date = datetime.strptime(server_date, '%a, %d %b %Y %H:%M:%S %Z')print(f"文件在服务器的时间: {server_date}")# 日期往前推一个月target_date = server_date - timedelta(days=30)file_name = match.group(1).split('/')[-1]for i in range(60):  # 最多加60天# 生成新的日期格式new_date_str = target_date.strftime('%Y%m%d')new_url_x64 = f"https://www.win-rar.com/fileadmin/winrar-versions/sc/sc{new_date_str}/wrr/{file_name}"new_url_x32 = new_url_x64.replace('x64', 'x32')print(f"尝试访问: {new_url_x64}")# 发送 HTTP HEAD 请求测试 x64 文件是否存在head_response_x64 = requests.head(new_url_x64)if head_response_x64.status_code == 200:print(f"x64 文件存在: {new_url_x64}")# 下载 x64 文件download_response_x64 = requests.get(new_url_x64)download_response_x64.raise_for_status()  # 确保下载成功# 保存 x64 文件到当前目录with open(file_name, 'wb') as file:file.write(download_response_x64.content)print(f"x64 文件已下载到当前目录: {file_name}")# 发送 HTTP HEAD 请求测试 x32 文件是否存在head_response_x32 = requests.head(new_url_x32)if head_response_x32.status_code == 200:print(f"x32 文件存在: {new_url_x32}")# 下载 x32 文件download_response_x32 = requests.get(new_url_x32)download_response_x32.raise_for_status()  # 确保下载成功# 保存 x32 文件到当前目录file_name_x32 = file_name.replace('x64', 'x32')with open(file_name_x32, 'wb') as file:file.write(download_response_x32.content)print(f"x32 文件已下载到当前目录: {file_name_x32}")else:print(f"x32 文件不存在: {new_url_x32}")breakelse:print(f"文件不存在: {new_url_x64}")target_date += timedelta(days=1)else:print("无法获取文件的服务器时间")
else:print("未找到连接文字为'Chinese Simplified'的下载链接")

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/867797.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Text1-综合练习6

Text-综合练习6 键盘录入n个数字,倒放他们的顺序 例如:输入1 2 3 4 5,输出5 4 3 2 1 Scanner EX=new Scanner(System.in);String arr[]=new String[100];String temp;int count=0;System.out.println("请输入要交换的数字:,以空格结束");for (int i = 0; i < 1…

Text1-综合练习2

Text-综合练习2 键盘录入一个大于2的整数,求它的平方根 结果省去小数部分保留整数 Scanner st=new Scanner(System.in);System.out.println("请输入一个大于2的整数:");int number1=st.nextInt();for(int i=1;i<number1;i++){//从1开始查找一直到number1的值int n…

Text1-综合练习1

Text1-综合练习1 逢七过 游戏规则:从任意一个数字开始报数 当你要报的数字包含七或者是七的倍数时都要说过 需求:使用程序在控制台打印出1-100之间满足逢七过规则的数 for(int i=1;i<=100;i++){if(i/10%10==7||i%10==7||i%7==0){//判断十位、个位有没有七,这个数是否能被七…

ciscn_2019_n_8 1

checksec一下能发现开了很多保护,吓人一跳,但其实我们分析一下发现只要var[13]为17就可以了if ( *(_QWORD *)&var[13] )#判断var[13]开始的8字节(_QWORD表示64位,即8字节)内存区域是否非零。*(_QWORD *)&var[13]是将var[13]的地址转换为_QWORD(64位整数)指针,然…

Unity URP Shader Graph 实现复古电视机效果

想到一出实现一出的复古电视机效果实现。复古电视机效果显示展示:使用素材 一张纹理需要放映的图片,一张遮罩贴图,一个电视机模型。UV使用Spherize模拟电视机球状显示屏。 扫描线A效果扫描线B效果像素化/随机UV偏移屏幕做旧效果边缘变暗效果屏幕黑边效果 自制一张合适的贴图…

终于决定:把自己家的能源管理系统开源了!

决定了很久把自己公司的能管平台开源了,部分功能和bug正在修复中。 欢迎star 欢迎轻拍 地址:https://gitee.com/ustcyc/zhitan-ems 介绍 通过物联网技术,采集企业水、电、气、热等能耗数据,帮企业建立能源管理体系,找到跑冒滴漏,从而为企业节能提供依据。 进一步为企业实…

Text-Switch的练习1

Text-Switch的练习1 键盘录入一个从一到七的数字表示星期 星期一到星期五是工作日 星期六和星期日是休息日 Scanner xq=new Scanner(System.in);System.out.println("请输入一个一到七之间的数字");int week=xq.nextInt();switch(week){case 1 :case 2 :case 3 :case…

Omnissa Dynamic Environment Manager 2412 - 个性化动态 Windows 桌面环境管理

Omnissa Dynamic Environment Manager 2412 - 个性化动态 Windows 桌面环境管理Omnissa Dynamic Environment Manager 2412 - 个性化动态 Windows 桌面环境管理 Simplify management of user profiles, environment settings, and policies across desktops and apps. 请访问原…

stata 检查哪些变量有缺失值

ssc install nmissing nmissing 说明这十个变量有缺失

Text-IfElse的练习1

Text-IfElse的练习1 某商场有vip的会员制,根据不同的会员会有不同的折扣,假设商品总价为1000,键盘录入会员级别,并计算出最终支付的钱 一级会员打九折;二级会员打八折;三级会员打七折;不是会员原价,打骨折int price=1000;Scanner mall=new Scanner(System.in);System.o…

Text-While循环的练习1

Text-While循环的练习1 判断一个数是否为回文数 回文数规则为:回文数就是一个数倒过来跟它本身相同,例如121,212 Scanner ba=new Scanner(System.in);System.out.println("请输入一个数字:");int i=ba.nextInt();int k=i;int num=0;while(k!=0){int g=k%10;//分离出…

Text-For循环的练习1

Text-For循环的练习1 键盘录入一个两位数的数字,表示范围 用for循环找出既能被3整除又能被5整除的数有多少个 int count=0;Scanner satisyf=new Scanner(System.in);System.out.println("请输入范围的开始:");int number=satisyf.nextInt();System.out.println(&quo…