Vb.net 如何获取网页的HTML代码?

Vb.net 如何获取网页的HTML代码?,vb.net,reflection,awesomium,Vb.net,Reflection,Awesomium,这是我最好的尝试,但它似乎无法检索html的主体,我只得到了头部 Dim page_source As String = DirectCast((From k In DirectCast(Reflection.Type _ Info.GetTypeFromHandle(WebControl2.GetType.TypeHandle), _ Reflection.TypeInfo).DeclaredMembers Where k.Name = "qn

这是我最好的尝试,但它似乎无法检索html的主体,我只得到了头部

Dim page_source As String = DirectCast((From k In DirectCast(Reflection.Type _
            Info.GetTypeFromHandle(WebControl2.GetType.TypeHandle),  _
            Reflection.TypeInfo).DeclaredMembers Where k.Name = "qnTkKOiivD"). _
            First, FieldInfo).GetValue(WebControl1)

qnTkKOiivD是一个私有属性的名称,它保存着Awesomium WebControl中似乎是pagesource的内容。

通过使用其方法,您可以很容易地从Awesomium WebControl获取HTML代码,甚至不需要进行反射

大概是这样的:

_WebControl.ExecuteJavascriptWithResult("document.body.innerHTML");

注意,您应该处理事件以确保您的文档加载完成。

甚至还有比使用javascript更简单的方法。在WebView上应该有一个名为HTML的属性来生成HTML

编辑:


显然有一个bug导致属性只返回标记。此错误已在最新更新的1.7.5.0版中解决。

尝试此链接:对我不起作用,因为我需要检查页面的当前源,加载的dom,javascript修改已生效,或者在向用户显示时禁用了javascript。对我来说,它只会显示标记。这很奇怪。看看,对于IWebView.HTML,它声明“获取当前加载文档的HTML代码”。不幸的是,没有直接链接我做了一些测试,对于我来说,1.7.5.0它生成了标记,但它没有完整的DOM。。。你只得到标签,我只得到DOM的一部分。。。所以我想有点奇怪。我很确定它曾经在旧版本中工作过。但是,最重要的是我不了解它。它是一个bug,并且在一些1.7.5更新中得到了纠正。与此同时,我切换到Windows8.x,从awesomium网站重新下载了安装文件,问题消失了。