您的位置:首页 > 理论基础 > 计算机网络

网页数据提取----网络投票软件开发

2007-12-17 18:05 387 查看
这是一个很早就设想的项目,一直没有付诸实现。前几天从网上接了一个小项目,和 网页数据提取有些关系,就顺便开发了这方面的功能。

项目有几个步骤,从简单到复杂一步步实现。现从简单的开始吧。

说简单,就简单。不考虑模式问题,不考虑性能问题,不考虑多线程问题,采用传统的编程方式,想到功能就加上去,优化的问题以后考虑吧,当然要冒着整个项目被推翻的风险。

功能列表:

1。读取网页: 必须实现的功能,否则就没有操作的基础数据。网页数据类型包括:html, xml, asp, aspx, image, script等。读取方法很多种,比如WebBrowser控件,WinSock控件等。

2。网页数据解析:对上一步读取的数据再加工和检索,找到需要数据。这一步操作挺麻烦的,因为我们面对的数据结构五法八门。可以使用WebBrowser的Document访问节点;也可以使用mshtml中的HTMLDocumentClass类;直接读取数据,采用文本分析方法也行,效率低一些,如果用正则表达式,效率会提升不少。上面的数据分析方法我都用过,根据处理的数据类型决定。

上面两步是初级部分,实用功能建立在上述结果的基础上。

3。添加实用功能:

1) 网页中link, button点击:模拟用户的操作,点击网页中的链接。在WebBroswer或mshtml中很容易实现点击动作。注意要实现相关事件回调,比如Completed,Navigating等。

WebBrowser --> Document --> DomDocument --> HTML Element --> Click

要找到相应的控件可以使用name, class id, href,submit等属性在控件集中过滤。

2)网页中数据填充: 数据填充一般发生在textbox控件,通过name能定位到控件,把待填充值赋给其value属性。
3)验证码识别:这一个牵涉到很多知识的话题,我会在另一篇文章中论述之, 在这里我们举个简单的例子,如

,复杂一点的如

, (声明:验证码图片是从网上提取的,网站名不记得了,如发现侵权,请立即联系lichunlin.sh@gmail.com或QQ:624286399,立即删除图片)。
4)网络问题:有很多朋友喜欢使用代理服务器上网,代理服务器功能必不可少。使用静态地址的朋友可以考虑IP地址不断变化,动态IP地址功能也加进来吧,也不怎么难实现。两者功能实现技术可以使用Sock, DCHP, WMI等,我用的是WMI.
5)网页过滤:网页过滤主要是处理IE和网页中script弹出的对话框。挺烦的,用户交互模式使用IE还行,在工具中不能人工干预,不能打断工具运行,一定要去掉。这是个技术难点,好在我已经解决了这个问题。关键是要解决UI Handler的问题。

在实际开发中还用到了其他的技术,今天先说到这里,以后详谈。
如果需要开发类似软件可以联系lichunlin.sh@gmail.com, QQ:624286399,MSN: li.chunlin_sh@hotmail.com.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐