HtmlElement的对象的OuterHtml属性问题
HtmlElement的对象的OuterHtml属性,这个属性是获取网页节点的所有Html文本,但是有一个问题,有时候获取的源码和网页里的源码是不同的,有出入,请问,如何获取和网页元素一样的代码。这个问题网上好像不多,不知道这里有没有人碰到过。string strHTML = CurHtmlElem.OuterHtml;
int intTmep = 0;
WebBrowser browser = new WebBrowser();
browser.Navigate("about:blank");
browser.ScriptErrorsSuppressed = true; // 屏蔽一些脚本错误
HtmlDocument doc = browser.Document;
while (intTmep < DomTreeAttribute.ListDomTree.Count) // DomTreeAttribute.ListDomTree自己生产的DOM 也就是源码
{
try
{
string strNowEem = DomTreeAttribute.ListDomTree[intTmep]["Body"].ToLower(); // 网页源码
HtmlElement htElement = doc.CreateElement(strNowEem); // 也生成HtmlElement对象,可是这个对象的内容也CurHtmlElem对象的内容对不上了
if (strHTML.Equals(strNowEem))
{
label1.Text = "选中节点路径 " + DomTreeAttribute.ListDomTree[intTmep]["Path"] + " " + strHTML;
}
else if (strHTML.Equals(htElement.OuterHtml.ToLower().Replace("\"", "")))
{
label1.Text = "选中节点路径 " + DomTreeAttribute.ListDomTree[intTmep]["Path"] + " " + strHTML;
}
intTmep++;
}
catch
{
intTmep++;
}
}
CurHtmlElem
HtmlElement CurHtmlElem; // 当前节点
void Document_MouseOver(object sender, HtmlElementEventArgs e)
{
//// 保存当前的element
RectElem.Width = RectElem.Height = 0;
CurHtmlElem = e.ToElement;
//// 让browser控件绘图,删除框框
TagRECT rect = new TagRECT(0, 0, wbrShowPage.Width, wbrShowPage.Height);
InvalidateRect(IntptrHwnd, ref rect, false);
timerPotion.Enabled = false;
}
比如,网页源码有一个节点的OuterHtml是,<td style='backcolor='...'></td>,而outerhtml就变成了<td style='backcolor=...;width=...'></td>,多了一个width属性,cmImpressionSent属性.... --------------------编程问答-------------------- 将网页读成流,具体参考
http://wenku.baidu.com/view/d5c9e58ecc22bcd126ff0c21.html --------------------编程问答--------------------
这个不一样吧 --------------------编程问答--------------------
多谢了!不过你没有理解我的意思! --------------------编程问答-------------------- --------------------编程问答--------------------
多谢! --------------------编程问答-------------------- 我也遇到这个问题了,暂时还没解决 --------------------编程问答-------------------- 这贴子两年了,有解决方案了吗? --------------------编程问答-------------------- 在网页上查看源代码得到的内容和 在程序中用WebBrowser或者HttpRequest请求得到的返回内容本来就不是一样的。 以你开发时采取的方法为准,你采取的WebBrowser获取源代码,那就不要管右键查看的网页源码了。 --------------------编程问答-------------------- 浏览器的View source取得的是从服务器其传回的html,后面javascript修改的东西不会在里面的,至少Chrome是这样的,我刚刚查看的。
--------------------编程问答-------------------- 是不是用HttpWebRequest会好点,或者可以试一试在DocumentComplete中取得试一试,这时候js还没有执行。
补充:.NET技术 , C#