前些天在一个blog上看到有人用python写了一个脚本,通过抓取网页然后分析,可以实时监控有没有火车票转让,并且把结果发送到自己的Gtalk中。感觉很好玩。今天我也写了一个自动下载麦咖啡病毒升级包的脚本。虽然两者几乎没有什么相干,但是有一个共同点就是都提供了便利性,减少了重复性劳累。
说说原理吧。我最开始想到的也是把下载页面抓取下来,然后直接过滤出下载地址。但是发现下载页面的网页不是单纯的html页面,而是一个动态页面。所以无法直接得到下载地址。
后来通过观察发现,下载页面上有一个 undate.ini的配置文件。我下载下来后发现里面有病毒升级包的版本信息,其中包含版本号以及一些其他信息。而升级包的实际下载地址就是http://xxxxxxxxxxxxxxxxx/sdat+版本号.exe 。前面的部分是不变化的,只是每次升级时候没的版本号要变化。只要能得到版本号,再自己通过一些字符串拼凑。就可以得到下载地址了。于是开始动工。
这个脚本是一个BAT文件,不过用到了一些Linux下的常用工具。我是在Windows下安装cygwin后实现的。推荐你使用cygwin。如果你不愿意安装cygwin,也可以下载我这个必备文件的压缩包。里面包含了该程序所必须的文件。
必备文件该程序的好处就是可以自动运行,自动检测更新,反正就是全自动。支持断点续传,如果发生意外(必须机器掉电)可以重新运行后继续下载。网络掉线后能自动重试,直到下载完成为止。
具体代码如下:
rem
rem? Purpose: auto download macafee virus dat file.
rem
rem? Version 0.0.1
rem? Author:abc123(lxj831@126.com)
rem
rem? Step: first,download update.ini file.
rem??????? second,use grep get version number.
rem??????? third,use cat,gawk,sed compose right url.
rem??????? last, use wget download the virus dat file.
rem? That's all,enjoy!
wget? -N http://download.nai.com/products/datfiles/4.x/nai/Chinese/simplified/update.ini -o downlog.log
grep -w? ^DATVersion update.ini | uniq |grep -o "[0-9]\+" >ver.txt
????
cat prefix.txt ver.txt suffix.txt | gawk '{printf(NR%4!=0)?$0" ":$0"\n"}'? | sed 's/ //g' >url.txt
rm update.ini ver.txt
wget? -N -c -w 20 -t 0 -i url.txt -a downlog.log
代码结束
---------------------------------------------------------------------------------------------------------------------------------
代码中提到的prefix.txt 文件内容为:
????????????? http://download.nai.com/products/licensed/superdat/nai/Chinese/simplified/sdat
????????? suffix.txt内容为:
????????????? .exe
比如当前最新的病毒升级包的下载地址为:
? ? ? ? ? ? ?? http://download.nai.com/products/licensed/superdat/nai/Chinese/simplified/sdat5415.exe
-----------------------------------------------------------------------------------------------------------------------------------
具体的步骤我在代码注释中写了,这里就不多说了。
分享到:
相关推荐
【音麦漂流瓶的autojs自动聊天脚本.zip】是一个包含自动交互功能的脚本,主要用于音麦漂流瓶应用。这个脚本的核心是利用AutoJS工具来实现对音麦漂流瓶应用的操作自动化,包括自动扔瓶子、捡瓶子以及自动进行聊天交互...
点击shell脚本 可自动从svn下载项目并打包生成ipa和plist文件
音麦脚本.zip是一个包含音麦漂流瓶自动化脚本的压缩包文件,主要涉及的是使用AutoJS编程语言来实现特定的自动化任务。AutoJS是一款基于Android平台的JavaScript编写工具,它允许用户通过编写脚本来控制手机,实现...
在描述中提到的脚本,很可能是定期检查服务器上指定的更新文件,然后通过网络从远程服务器下载最新的发布包。这通常涉及到版本比较、文件替换和重启服务等步骤。为了实现自动化,脚本会设定一定的触发条件,比如定时...
"升级包制作"是指在软件更新时,为了方便用户下载和安装,将新版本的改动部分打包成一个较小的文件,这个过程涉及到文件的差异对比、增量更新以及打包技术。通常,升级包会包含新旧版本之间的差异数据,这样用户在...
这是笔者写的自动安装python的各种包的脚本,可根据需要设置你想安装的包,而不用一个个都用pip install,运行方法是在IDE设置你想安装的包,运行即可。
“暴风一号”(“1KB文件夹快捷方式病毒”)自动化清除脚本: 1. 完全由解密后的病毒源代码改写为清除程序,原汁原味 2. 决不会误删除快捷方式 3. 自动恢复文件关联、IE关联及其它被修改的注册表项目 4. 自动将隐藏...
批处理是一种基于DOS和Windows操作系统下的命令行自动化工具,它允许用户通过编写一系列命令来实现自动化执行任务。 在批处理脚本中,程序员可以集成各种系统命令,如删除、复制、移动文件,以及运行其他程序或命令...
4. **易于维护**: 当需要升级或调整配置时,通过修改脚本即可批量处理。 总结,Nginx的一键安装脚本是Linux系统管理员的重要工具,它简化了Nginx的离线安装过程,提高了工作效率,同时也保证了服务器配置的一致性...
本文将详细介绍如何在CentOS 7上自动升级内核至5.4.13版本,基于提供的资源,即`update_kernel.sh`脚本和`kernel`目录。 首先,CentOS 7默认使用的内核版本为3.10,而5.4.13是一个较新的稳定版内核,提供了更多的...
【程序启动自动执行sql升级脚本】是一种自动化数据库更新的机制,旨在解决开发过程中sql脚本管理和执行的混乱情况。这种机制通常应用于敏捷开发环境,其中数据库结构会随着业务需求频繁变化,需要定期进行更新。 在...
现在汽车行业用vector的工具进行自动测试,但是该自动测试模板很少,本案例是分享CAPL脚本自动化测试的模板,和自动控制测试步骤的XML模板,使用过程可以通过本人分享的文档来实现工程的建立到自动测试的完成。通过...
"360杀毒隔离内网病毒库升级更新处理脚本"是一个专为在内部网络环境下解决360杀毒软件病毒库升级问题而设计的自动化工具。 病毒库是杀毒软件的核心组成部分,它包含了已知病毒、木马和其他恶意软件的特征码。定期...
2. 下载最新版本:脚本会从官方源或者指定的镜像站点下载OpenSSH的最新版本包,如"openssh-9.4p1-ky10"。 3. 安装依赖:在升级OpenSSH之前,脚本会处理所有必要的依赖关系,确保新版本能够顺利运行。 4. 备份旧...
升级包通常包含有差异的数据,只替换旧版本中的部分文件,这样可以节省下载时间并简化更新过程。 `7z` 是一种高效且功能强大的压缩格式,它支持多种压缩和加密算法,包括AES-256。在这里,7z可能是指7-Zip软件,一...
外部脚本可能包含了设备升级过程中的自动化脚本,这些脚本通常用Python、Shell或其他编程语言编写,用于控制和执行升级过程中的一系列步骤,如检查系统环境、备份现有数据、解压新文件、安装更新等。 2. **引导...
描述中提到了一个自动化升级脚本`gccup5.4.0.sh`,这个脚本是为了简化升级过程而设计的。脚本可能会包含以下步骤: 1. **更新YUM源**:可能需要添加第三方的软件仓库,如EPEL(Extra Packages for Enterprise Linux...
《星穹铁道自动使用兑换码脚本》是一款专为《星穹铁道》游戏设计的辅助工具,它能够帮助玩家自动使用游戏内的兑换码,从而省去手动输入的繁琐步骤,提高游戏体验。该脚本基于Python编程语言编写,因此在使用前,用户...
win10关闭自动更新脚本
【vtstscripts.tgz 脚本资源下载Linux】是一个针对Linux系统的脚本资源包,主要服务于Linux运维人员和服务器管理人员。这个压缩包文件包含了多个用于系统管理、自动化任务执行和故障排查的脚本,旨在提升Linux环境的...