webbrowser提供了C/S结构的程序中加载网页的功能。通常,C/S结构跟B/S结构的程序相比,运行速度快是一大优点。所以webbrowser的存在解决了这个难题。

WebBrowser控件应用程序集:

System.Windows.Forms
基本操作:
goforward 前进 WebBrowser1.goforward
goback 后退
gohome 回主页
navigate 浏览 WebBrowser1.navigate "你要浏览的网址"
stop 停止
gosearch 搜索 WebBrowser1.gosearch "你要搜索的关建词"
属性:
LocationURL网页地址
LocationName网页标题

伪代码实例:

string url = this.webBrowser1.Document.Links[i ].GetAttribute("href").Trim();  //逐个取得页面上的某一个链接
this.webbrowser1.Nagitive(url); //加载到webbrowser
this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted); //webbrowser加载完成执行的事件为DocumentCompleted
private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.webBrowser1.ReadyState == WebBrowserReadyState.Complete) //返回状态时已经完成
{
string dvJobTit = "";
string dvCompNM = "";
string address = "";
string createtime = "";
string dvJobUrl = "";
string[] arr = new string[6];
this.textBox1.Text = this.webBrowser1.Url.ToString();

for (int i = 0; i < CountNum; i++)
{
dvJobTit
= this.webBrowser1.Document.GetElementsByTagName("tbody")[4].GetElementsByTagName("tr")[i + 1].GetElementsByTagName("td")[1].InnerText;
for (int j = start; j < this.webBrowser1.Document.Links.Count; j++)
{
string describe = this.webBrowser1.Document.Links[j].InnerText;
if (describe == dvJobTit) //关键字比对,只获取比对正确的节点下的信息
{
dvJobUrl = this.webBrowser1.Document.Links[j].GetAttribute("href").Trim(); //获取该链接
start = j;
break;
}
}
dvCompNM
= this.webBrowser1.Document.GetElementsByTagName("tbody")[4].GetElementsByTagName("tr")[i + 1].GetElementsByTagName("td")[3].InnerText; //获取具有相应html标签的数据
address
= this.webBrowser1.Document.GetElementsByTagName("tbody")[4].GetElementsByTagName("tr")[i + 1].GetElementsByTagName("td")[4].InnerText;
createtime
= this.webBrowser1.Document.GetElementsByTagName("tbody")[4].GetElementsByTagName("tr")[i + 1].GetElementsByTagName("td")[5].InnerText; //innerText为html中嵌入的字符串
arr[0]=dvJobTit;
arr[1]=dvCompNM;
arr[2]=address;
arr[3]=createtime;
arr[4] = dvJobUrl;
arr[5] = id.ToString() ;
if (InsertInfo(arr)) // 自定义的插入数据库的函数
{
this.lblMessage.Text = "插入成功!";
}
else
{
this.lblMessage.Text = "存在异常!";
}}