高手进c# webBrowser获得网页上看到的超链接文本
我想在webBrowser控件的网页打开后,可以获得如图所示的超链接文本(把这个文本赋予c#里的一个变量temp)图1:网页:http://image.baidu.com...
我想在webBrowser控件的网页打开后,可以获得如图所示的超链接文本(把这个文本赋予c#里的一个变量temp)
图1:
网页:http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=12214&cl=2&cm=1&sc=0&lm=-1&pn=28&rn=1&di=1533942216&ln=2000&fr= 图2:
网页:http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=jay+%D6%DC%BD%DC%C2%D7%D7%EE%D0%C2%CD%BC%C6%AC&in=25292&cl=2&cm=1&sc=0&lm=-1&pn=16&rn=1&di=1278940441&ln=2000&fr= 高手过来看看,一般的方法行不同。
第一个网页链接给错了。修改之:http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=12214&cl=2&cm=1&sc=0&lm=-1&pn=28&rn=1&di=1533942216&ln=2000&fr=#pn30 展开
网页:http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=12214&cl=2&cm=1&sc=0&lm=-1&pn=28&rn=1&di=1533942216&ln=2000&fr= 图2:
网页:http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=jay+%D6%DC%BD%DC%C2%D7%D7%EE%D0%C2%CD%BC%C6%AC&in=25292&cl=2&cm=1&sc=0&lm=-1&pn=16&rn=1&di=1278940441&ln=2000&fr= 高手过来看看,一般的方法行不同。
第一个网页链接给错了。修改之:http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=12214&cl=2&cm=1&sc=0&lm=-1&pn=28&rn=1&di=1533942216&ln=2000&fr=#pn30 展开
6个回答
展开全部
在 webBrowser的 DocumentCompleted 事件里,写入如下的代码
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
MessageBox.Show(this.webBrowser1.Document.Links[4].InnerText);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
MessageBox.Show(this.webBrowser1.Document.Links[4].InnerText);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加COM reference, SHDocVw 及 mshtml
将webBrower1.ActiveXInstance属性 传给 SHDocvw.WebBrowser接口
使用SHDocvw.WebBrowser接口下的ProgressChange事件
在Progress.Equals(ProgressMax)时,
取
((webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.HTMLDocumentClass).body.innerText即可
代码类似如此:
private void button1_Click(object sender, EventArgs e)
{
SHDocVw.WebBrowser wb = webBrowser1.ActiveXInstance as SHDocVw.WebBrowser;
wb.ProgressChange += new DWebBrowserEvents2_ProgressChangeEventHandler(wb_ProgressChange);
object flags = new object(), header = new object(), postdata = new object(), framename = new object();
webBrowser1.Navigate(@"http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=31076&cl=2&cm=1&sc=0&lm=-1&pn=0&rn=1&di=503232564&ln=2000&fr=");
}
void wb_ProgressChange(int Progress, int ProgressMax)
{
if (Progress.Equals(ProgressMax))
MessageBox.Show(((webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.HTMLDocumentClass).body.innerText);
}
触发事件你可以再看一下,可能还有更合适的。 但是Progress.Equals(ProgressMax)是最基本的 保证全部加载完毕。
还有个方法你可以自己尝试下,我觉得可以用BHO,但是不知道winform里的webbrowser对象会不会自动加载BHO,用BHO跟上边过程差不多,只是要编成COM
将webBrower1.ActiveXInstance属性 传给 SHDocvw.WebBrowser接口
使用SHDocvw.WebBrowser接口下的ProgressChange事件
在Progress.Equals(ProgressMax)时,
取
((webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.HTMLDocumentClass).body.innerText即可
代码类似如此:
private void button1_Click(object sender, EventArgs e)
{
SHDocVw.WebBrowser wb = webBrowser1.ActiveXInstance as SHDocVw.WebBrowser;
wb.ProgressChange += new DWebBrowserEvents2_ProgressChangeEventHandler(wb_ProgressChange);
object flags = new object(), header = new object(), postdata = new object(), framename = new object();
webBrowser1.Navigate(@"http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%C1%D6%D0%C4%C8%E7&in=31076&cl=2&cm=1&sc=0&lm=-1&pn=0&rn=1&di=503232564&ln=2000&fr=");
}
void wb_ProgressChange(int Progress, int ProgressMax)
{
if (Progress.Equals(ProgressMax))
MessageBox.Show(((webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).Document as mshtml.HTMLDocumentClass).body.innerText);
}
触发事件你可以再看一下,可能还有更合适的。 但是Progress.Equals(ProgressMax)是最基本的 保证全部加载完毕。
还有个方法你可以自己尝试下,我觉得可以用BHO,但是不知道winform里的webbrowser对象会不会自动加载BHO,用BHO跟上边过程差不多,只是要编成COM
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一步:电脑登陆百度搜索“PP越狱助手”软件下载,安装完毕后打开。
第二步:用数据线把iPad air与电脑连接。
第三步:点击界面的“开始越狱”。
第四步:点击【开始越狱】后PP越狱助手将自动匹配IOS固件版本并弹出越狱【evasi0n】工具。
第五步:点击【Jaibreak】— 并等待【evasi0n】工具运行。
第六步:【evasi0n】工具运行过程中请勿断开连接。
第七步:唤醒iPad air屏幕并解锁。
第八步:此时的iOS设备将进行自动重启。
(提示:此时还没有完成越狱,请勿断开数据线连接!请点击IOS设备桌面【Jaibreak】图标,这时会出现闪退现象,请不要触动设备,耐心等待【evasi0n】工具运行最后一步)
第九步:这时越狱工具【evasi0n】将重新导入数据,越狱成功提示”完成“;点击“Exit”退出。
第十步:iOS设备将自动重启,并显示cydia图标;越狱完成。
第二步:用数据线把iPad air与电脑连接。
第三步:点击界面的“开始越狱”。
第四步:点击【开始越狱】后PP越狱助手将自动匹配IOS固件版本并弹出越狱【evasi0n】工具。
第五步:点击【Jaibreak】— 并等待【evasi0n】工具运行。
第六步:【evasi0n】工具运行过程中请勿断开连接。
第七步:唤醒iPad air屏幕并解锁。
第八步:此时的iOS设备将进行自动重启。
(提示:此时还没有完成越狱,请勿断开数据线连接!请点击IOS设备桌面【Jaibreak】图标,这时会出现闪退现象,请不要触动设备,耐心等待【evasi0n】工具运行最后一步)
第九步:这时越狱工具【evasi0n】将重新导入数据,越狱成功提示”完成“;点击“Exit”退出。
第十步:iOS设备将自动重启,并显示cydia图标;越狱完成。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
引用microsoft html object library
mshtml.HTMLDocument doc = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
mshtml.HTMLDivElement div = (mshtml.HTMLDivElement)doc.getElementById("imgFrom");
mshtml.IHTMLDOMChildrenCollection nodes = (mshtml.IHTMLDOMChildrenCollection)div.childNodes;
mshtml.HTMLAnchorElement node = (mshtml.HTMLAnchorElement)nodes.item(nodes.length - 1);
Console.WriteLine(node.innerText);
mshtml.HTMLDocument doc = (mshtml.HTMLDocument)webBrowser1.Document.DomDocument;
mshtml.HTMLDivElement div = (mshtml.HTMLDivElement)doc.getElementById("imgFrom");
mshtml.IHTMLDOMChildrenCollection nodes = (mshtml.IHTMLDOMChildrenCollection)div.childNodes;
mshtml.HTMLAnchorElement node = (mshtml.HTMLAnchorElement)nodes.item(nodes.length - 1);
Console.WriteLine(node.innerText);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询