如何获取网页的渲染文档

时间:2013-09-11 16:35:36

标签: html wpf vb.net

如何从网址获取呈现的HTML?

假设我想让这个程序以新闻,日程安排和其他动态内容的形式检查网络上的更新( HTML源代码中没有的内容

如何获取包含完整文档的呈现(完整)HTML,就像您通过浏览器阅读它一样?

以下示例是动态页面的示例:

This is an example of text I want to obtain from a webpage

与动态网站一样 - 上面的文字在源代码中找不到 - 只能通过浏览器看到。

当然我可以使用WebClient和DownloadString(“www.example.com”)下载HTML页面,但这只会给我源页面 - 静态文本。

我想获得最终文档,让我们说Javascript添加了它的元素并且jQuery完成了它的设置。

    Dim Client As New WebClient
    Dim HTML = WebClient.DownloadString("http://www.example.com")

要访问/解析更多HTML,我还可以使用MSHTML.dll来逐页浏览元素。

    Dim Client As New WebClient
    Dim Data As Stream = Client.OpenRead(New Uri("http://example.com"))
    Dim Reader As New StreamReader(Data)
    Dim HTML As String = Reader.ReadToEnd

    Dim Document As IHTMLDocument2 = DirectCast(New mshtml.HTMLDocument(), IHTMLDocument2)
    Document.write(HTML)
    Dim Elements As IHTMLElementCollection = Document.all

    For Each Element As IHTMLElement In Elements
    'here I can access things like the elements ids, tag innerHTML and so forth
    Next

但这些都不会给我实际的渲染文件。

虽然我可以创建一个WebBrowser控件,但是转到URL并通过该访问页面的内容 - 但如果可能的话 - 这不是我想要的方式。

1 个答案:

答案 0 :(得分:4)

对于动态加载内容的网页,您必须发现要通过网页脚本获取内容的网址。使用fiddler之类的工具查看网址。获得该信息后,请使用WebClient获取内容。