通过脚本自动下载麦咖啡病毒升级包

阅读更多
前些天在一个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([email protected])
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
-----------------------------------------------------------------------------------------------------------------------------------
具体的步骤我在代码注释中写了,这里就不多说了。


你可能感兴趣的:(脚本,Linux,Python,Windows,Blog)