程序机制:
在webbrowser.documentcompleted函数中进行解析当前网页,并且翻页。
相关代码如上图所示,
发现的问题如下:我在断点单步调试的过程中发现btnNextPage_click一直反黑
btnNextPage按钮中主要是定位当前页的下一页链接并进行翻页,
翻页的方法是:
mshtml.IHTMLElement anchor = (mshtml.IHTMLElement) htmlElemNext.DomElement;
anchor.click();
while (webBrowser1.IsBusy) System.Threading.Thread.Sleep(500);
其中htmlElemNext是用DOM定位的下一页链接,出现的问题是:
一个页面被解析,插入数据库两次
急求牛人帮我解答下上面的两个问题!
可以参考一下,我以前写过的:
private void AxWebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (AxWebBrowser1.ReadyState != WebBrowserReadyState.Complete) //触发类别 判断
return;
if (e.Url.ToString() != AxWebBrowser1.Url.ToString()) //子页面 url判断
return;
this.labStatus.Text = "就绪";
this.cobURL.Text = this.AxWebBrowser1.Document.Url.ToString();
this.TabText = this.AxWebBrowser1.DocumentTitle;
//HtmlDocument hd = AxWebBrowser1.Document;
//HtmlElement he = hd.GetElementById("kw");
//he.InnerText = "net";
//HtmlElement bt = hd.GetElementById("sb");
//bt.InvokeMember("click");
////////// btnG
HtmlDocument hd = AxWebBrowser1.Document;
HtmlElement he = hd.GetElementsByTagName("input").GetElementsByName("q")[0];
he.InnerText = "net";
HtmlElement bt = hd.GetElementsByTagName("input").GetElementsByName("btnG")[0];
bt.InvokeMember("click");
//注销事件,防再次请求提交问题
AxWebBrowser1.DocumentCompleted -= new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.AxWebBrowser1_DocumentCompleted);
}