高手进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
展开
 我来答
shihoumacili
高粉答主

2016-02-01 · 每个回答都超有意思的
知道大有可为答主
回答量:1.1万
采纳率:87%
帮助的人:471万
展开全部

代码行如下:

string s=webbrowser1.DocumentText;

  1. 这个就是获取当前所显示的网页的HTML了

  2. 但是注意一个问题,如果说网页没有加载完毕的话,这么获取是获取不到的。

  3. 所以应该在加载完毕事件触发之后再去获取。

百度网友94f02eb
2009-07-24 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4415万
展开全部
在 webBrowser的 DocumentCompleted 事件里,写入如下的代码

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
MessageBox.Show(this.webBrowser1.Document.Links[4].InnerText);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wcpeter1988
推荐于2016-05-06 · TA获得超过264个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:137万
展开全部
添加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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暴走晓萝莉
2016-01-01 · TA获得超过227个赞
知道答主
回答量:259
采纳率:0%
帮助的人:62万
展开全部
第一步:电脑登陆百度搜索“PP越狱助手”软件下载,安装完毕后打开。
第二步:用数据线把iPad air与电脑连接。
第三步:点击界面的“开始越狱”。

第四步:点击【开始越狱】后PP越狱助手将自动匹配IOS固件版本并弹出越狱【evasi0n】工具。
第五步:点击【Jaibreak】— 并等待【evasi0n】工具运行。

第六步:【evasi0n】工具运行过程中请勿断开连接。
第七步:唤醒iPad air屏幕并解锁。

第八步:此时的iOS设备将进行自动重启。
(提示:此时还没有完成越狱,请勿断开数据线连接!请点击IOS设备桌面【Jaibreak】图标,这时会出现闪退现象,请不要触动设备,耐心等待【evasi0n】工具运行最后一步)

第九步:这时越狱工具【evasi0n】将重新导入数据,越狱成功提示”完成“;点击“Exit”退出。

第十步:iOS设备将自动重启,并显示cydia图标;越狱完成。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微软专家张海
2009-07-24 · TA获得超过748个赞
知道小有建树答主
回答量:564
采纳率:100%
帮助的人:0
展开全部
引用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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式