读书人

WinForm求高手怎么获取网页中的部分内

发布时间: 2013-03-01 18:33:02 作者: rapoo

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");



foreach (HtmlElement el in eles)
{
HtmlElementCollection eles2 = el.GetElementsByTagName("P");
}

参考一下
[解决办法]
试试设置webBrowser1.Document.Body.ScrollLeft,ScrollTop属性
[解决办法]
DocumentComplated事件里面写
webBrowser1.Document.Window.ScrollTo(150, 100);
[解决办法]
给你想访问的div 加上id属性,然后使用webbrowser.document.getelement方法就可以。
[解决办法]
该回复于2013-02-25 22:57:46被版主删除

读书人网 >C#

热点推荐