日期:2014-05-17  浏览次数:20928 次

WinForm求高手如何获取网页中的部分内容,急!!!!!
用这个webBrowser空间获取的是整个网页的地址呀,我要获取显示在WinForm中显示某个DIV区域就好了,请问怎么做呀???

比如一个网页的源码
<html>

...................
<div>
我就要这个里面的内容 显示在WinForm里面,并且这里面的提交请求可以执行
</div>
...................

</html>

------解决方案--------------------
webbrowser没怎么用过,不过推荐使用httprequest类,获取整个页面字符串,然后用正则提取相应的内容,模拟表单提交。
------解决方案--------------------
webBrowser1.Document

这个是webBrowser的文档对象,剩下的,就是你提取的规则了

比如指定id,或者 第几个div等等了
------解决方案--------------------
可以使用正则表达式。
string text = Regex.Match(html, @"\<div\>(.*?)\<\/div\>").Groups[1].Value;
------解决方案--------------------
winform:
private string html;

        public string Html
        {
            get { return html; }
            set { html = value; }
        }
/// <summary>
        /// 接受html页面返回值
        /// </summary>
        /// <param name="returnValue"></param>
        public void Register(string returnValue)
        {
            this.Html = returnValue;
        }
html页面:
window.external.Register("楼主给分");
------解决方案--------------------
HtmlAgilityPack
网页解析利器。
------解决方案--------------------
winform:
private string html;

        public string Html
        {
            get { return html; }
            set { html = value; }
        }
/// <summary>
        /// 接受html页面返回值
        /// </summary>
        /// <param name="returnValue"></param>
        public void Register(string returnValue)
        {
            this.Html = returnValue;
        }
html页面:
------解决方案--------------------
删掉 第一个行 html 的 DTD,就是<!DOCTYPE 什么的, 剩下内容作为XML载入,然后你懂的
------解决方案--------------------
webbrowser好像是可以用DOM解析的。

 HtmlDocument doc = webBrowser1.Document;

HtmlElementCollection eles = doc.GetElementsByTagName("DIV");