开发WEB机器人的三种常用方法

我们在windows平台上写一些WEB机器人程序的时候,通常有三种方法。

1.webbrowser

一种是使用webbrowser控件加载网页,用MSHTML来操控整个网页,进行模拟填表、提交、点击、采集数据。这种方式开发起来比较简单。但由于需要加载整个页面,缺点是速度慢、效率不高,内存占用大,难以做成多线程并发。

2.Winhttp

一种是直接基于HTTP协议来做,分析出每一个填表、提交、点击的背后,都进行了什么GET/POST动作,使用Winet或Winhttp进行模拟相应的GET/POST动作即可。这种方法速度快、效率高、内存占用小、容易做成多线程并发。缺点是开发难度大,需要我们一点一点的分析。有时候还需要读懂他的JS代码,并用自己的软件开发语言写出来。比如有的网站注册账号的时候,你抓包就会发现密码是一段密文,但他用的是HTTP并不是HTTPS。你就得读懂他的JS代码是怎么把密码加密成那段密文的,然后自己把那个加密算法写出来。目标网站越复杂,各种框架嵌套,你就会发现分析起来很难。并且有时候我们需要自己手动管理Cookie、请求头和响应头。

3.WebKit

还有一种是在第三方开源WEB浏览器内核上开发(如WebKit)。这种方式比较灵活,可以根据自己的具体需求进行精简和添加功能。但这种方式对程序员要求比较高。需要掌握很多基础知识,需要了解、读懂浏览器内核框架,需要看大量英文文档。不要指望国内有全中文的WebKit开发手册。

4.webbrowser+Winhttp

其实我们可以吧webbrowser与Winhttp结合起来进行开发。需要进行复杂操作的部分,用webbrowser完成,简单的提交和获取数据,使用Winhttp进行GET/POST来完成。比如,弹出webbrowser窗口,让用户输入账号密码验证码进行登录,这样就获取了Cookie。然后隐藏webbrowser窗口,程序在后台使用Winhttp多线程并发提交、获取数据。

你可能感兴趣的:(开发WEB机器人的三种常用方法)