2009年4月28日星期二

Web机器人的作用及其实现

Web机器人有什么作用呢?它不但可以实现定时登录网站,还可以用于提高测试Web站点时的效率。当然,任何事物都有两面性,有不少站长利用Web机器人作弊以骗取广告商的广告费。目前Web机器人的实现主要有以下几种:

(1) JavaScript

在网站设计模型的行为层,各浏览器对ECMA标准的JavaScript提供了良好的支持。由于 JavaScript使用了文档对象模型——DOM 和浏览器对象模型——BOM,所以使用JavaScript构建Web机器人非常的方便。要注意的是:出于安全性考虑,JavaScript 不能访问和操作本地计算机文件,因此我们无法做到诸如登录站点后自动下载文件之类的功能。与JavaScript 有关的 Web机器人有:

  • zope.testrecorder:它用于记录浏览器事件以及测试断言 (简单来说断言是指:这里的文本框应含有这段文字,那里的复选框该不该被选中等)。必须首先安装 Web Server——Zope ,再访问 zope.testrocoder,最后输入任意的URL即可开始进行记录测试。不过安装和配置 Zope非常的复杂。它需要结合Selenium(一个开源的 Web 测试框架)或者 zope.testbrowser一起使用。
  • JsUnit:用于测试静态HTML文档以及生成的HTML文档,它不能与Web Server进行交互。

(2) 控制浏览器

IE浏览器与Firefox浏览器均提供了编程接口,外部程序何以通过编程接口控制浏览器的行为。

  • MSDN为开发人员提供了IE浏览器的COM接口以及如何用VB控制IE浏览器范例。pywin32 用Python封装了COM等机制,因此使用 Python控制IE浏览器同样是没有问题的。PAMIE 还对pywin32进行了进一步的封装,使得控制IE浏览器更加方便快捷。关于如何使用Python进行COM编程,请阅读《Python Programming on Win32》一书。此外,该书的第21章:Active Scripting还详细介绍了如何将Python嵌入IE浏览器(出于安全性考虑,嵌入的Python不允许导入任何模块,因此使用Python并不能实现比JavaScript更多的功能)。有一点要注意:IE浏览器7.0及其以上版本默认是不允许COM控制的,需要进行如下设置:Tools --> Internet Options --> Security --> Security for this zone 设置成Medium。
  • XPCOM是访问Gecko库、嵌入以及扩展Gecko的好方法。PyXPCOM封装了XPCOM机制。FireFox浏览器等使用Gecko作为 Web排版引擎,因此能够通过XPCOM进行控制。这方面资料非常的少,目前在Google上还搜索不到通过PyXPCOM控制Firefox浏览器的资料。

(3) 模拟浏览器

虽然使用JavaScript和JavaApplet能够比较好的模拟浏览器的重定向、表单和Cookie等行为,但是对于Frame、DOM访问等行为就很难模拟了。那么有什么好的实现方法呢?请看下面(按照模拟能力顺序排列):

  • HttpUnit(使用Java实现,需要配合JUnit):支持基本的HTTP认证以及简单的JavaScript。
  • zope.testbrowser 这是是一个可以脱离Zope而单独使用的Zope组件。支持简单DOM (含表单)、Cookie以及定制的HTTP请求。
  • WebUnit(使用Python实现,需要配合 PyUnit):DOM方面只能支持表单,其他模拟能力和zope.testbrowser基本差不多。
  • twill(Python实现):其模拟能力与WebUnit基本一样。
  • 使用Python 3的标准模块urllib(这是一个基于更底层的http.client模块)同http.cookiejar 等配合以支持基本的定制HTTP请求和Cookie。使用标准模块html.parser解析HTML时,有可能需要python-utidylib来做HTML的整理。在《Python Cookbook》的第14章Web Programming中还描述了控制IE浏览器、使用HTTPS等技术。)

(4) 宏记录 鼠标点击的坐标和时间 然后重放

这个实现受到Web网页变化的影响非常的大,而且测试的逻辑并不明确,所以非常难以维护。

2009年4月26日星期日

介绍一款出色的可视化数据绘图工具——Gnuplot


Gnuplot是基于GNG许可证的软件,这就意味着,虽然它可以免费使用,但是不能免费传发修改源代码后的版本,这一点与GNU许可有很大的区别,希望大家在使用的时候注意。另外,该软件可以移植于各种主流的系统平台。

Gnuplot能够方便的把收集到的科研数据和函数绘制成图形,便于研究人员进行技术分析,是一款不可多得的科研工具软件。如果您要在数据收集的同时绘制图形,我推荐您使用Cacti。

Gnuplot官方网站链接
Gnuplot简明教程

2009年4月25日星期六

大家不用为MySQL的前途担心,MySQL是永生的。

Oracle收购Sun之后,MySQL的前途变得扑朔迷离起来。多年以来,在数据库领域MySQL一直是Oracle强大的竞争对手。现在,Oracle似乎已经掌握了MySQL的生杀大全,Oracle究竟会如何处置MySQL呢?是继续发展它,卖掉它,还是杀死它?

其实大家不用为MySQL的前途担心,因为MySQL拥有GNU通用公共许可证。

使用GNU通用公共许可证的软件具有以下特点:

  • 自由运行软件
  • 自由复制并再发行软件
  • 自由修改源代码并发行修改后的软件

日前,在2008年离开Sun公司的MySQL的创始人迈克尔•维德纽斯表示,由于Oracle在开源界的名声并不好,他对于Oracle能够继续发展MySQL不抱乐观态度。他准备使用他的公司Monty Program Ab创建一个MySQL分支,以保证MySQL能够继续发展下去。

在强大的GNU计划面前,任何开源软件都是永生的。

2009年4月24日星期五

Windows 7 惊爆无法修复的设计漏洞!

windows7

在本周四阿联酋迪拜举行的HITB安全大会中,安全专家利用系统漏洞入侵了微软最新的操作系统Windows 7,致命是——该漏洞是无法修复的设计漏洞。安全专家威宾·库玛尔和尼廷· 库玛尔利用他们研发的黑客入侵工具——VBootkit 2.0,为大家展示了如何通过该漏洞在Windows 7启动时获得系统管理员的控制权限。

据可靠消息,这种黑客入侵工具只能使用于Windows 7操作系统。虽然这种入侵方式必须黑客直接操作目标计算机而无法通过远程控制来操作,但是威宾·库玛尔指出:“问题的关键是该漏洞不可能被修复,因为这是操作系统设计上存在的问题。”

VBootkit 2.0仅有3KB容量,它可以使黑客在Windows 7操作系统启动时更改系统内存中加载的文件。因为VBootkit 2.0不更改磁盘中存储的数据,所以很难被主动防御软件发现。一旦入侵成功,黑客即可远程控制目标计算机,并修改用户的访问权限。VBootkit 2.0是这两位安全专家研发的第二款黑客入侵工具,原来的VBootkit 1.0曾在2007年用与演示如何入侵Windows Vista操作系统。

目前微软还没有对该漏洞发表评论,是不屑一顾还是不敢面对呢?

2009年4月23日星期四

著名Linux发行版的最新版本Ubuntu 9.04发布!


Ubuntu的赞助公司Canonical在美国东部时间2009年4月23日12点宣布,Ubuntu 9.04桌面版本正式面向用户提供下载。同时还发布了Ubuntu 9.04的服务器版本和Ubuntu 9.04上网笔记本电脑特别定制版。


Ubuntu 9.04桌面版的功能进一步加强。系统启动速度之需要25秒即可快速启动;系统的增强型挂起和恢复功能提供给用户更长的续航时间,并能够在休眠后立刻恢复使用;系统还扩展了WiFi与3G环境之的智能切换功能,以支持更多的无线设备和移动设备。

下载地址:http://releases.ubuntu.com/9.04/

Canonical公司的首席运营官Jane Silber说:“我们能够看到Ubuntu吸引了更多的主流计算机用户。通过最新的办公软件套装、网络电话Skype和Adobe Flash的支持以及更快的系统启动速度,我们相信将会有更多的计算机用户加入到数百万Ubuntu用户群体中来”。

  Ubuntu 9.04预装了OpenOffice.org 3.0办公软件套装。这为用户提供了与Microsoft Office相兼容的出色的办公环境。为那些需要在工作中编写文档、创建演示文稿或者管理电子表格的用户至少节约了200美元。

  在Ubuntu 9.04中还第一次出现了集成通知系统。此系统整合了各种应用程序的通知方法,并以简洁、人性化的方式为用户提供信息。