网页自动网页表单(提交Post内容)的用途很多,如验证身份、程序升级、网络投票等,以下是用C#实现的方法。
网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser、WebClient、HttpWebRequest这三个。以下介绍使用WebBrowser实现网页表单自动提交的方法:
WebBrowser是VS2005新提供的组件(其实就是封装了IE接口),实现POST功能一般在webBrowser的DocumentCompleted中分析HtmlDocument 来实现,HtmlDocument 为 Internet Explorer 的文档对象提供托管包装,该文档对象也称为 HTML 文档对象模型 (DOM)。您可以通过 WebBrowser 控件的 Document 属性获取 HtmlDocument 的实例。
HTML 文档中的 HTML 标记可以相互嵌套。因此,HtmlDocument 表示一个文档树,其子级是 HtmlElement 类的实例。
HtmlDocument 表示 HTML 标记内的整个文档。诸如BODY、DIV、FORM 和 SPAN 等标记各由一个单独的 HtmlElement 对象表示。
访问此树中的元素的方法有多种。使用 Body 属性可以访问 BODY 标记及其所有子标记。ActiveElement 属性提供 HTML 页上具有用户输入焦点的元素的 HtmlElement。HTML 页中的所有元素都有名称;All 集合使用元素名称作为索引提供对每个 HtmlElement 的访问。GetElementsByTagName 将返回具有给定 HTML 标记名称(如 DIV 或 TABLE)的所有 HtmlElement 对象的 HtmlElementCollection。GetElementById 将返回单个与您所提供的唯一 ID 相对应的 HtmlElement。GetElementFromPoint 将返回可在屏幕上提供的鼠标指针坐标位置上找到的 HtmlElement。