如何从网址获取呈现的HTML?
假设我想让这个程序以新闻,日程安排和其他动态内容的形式检查网络上的更新( HTML源代码中没有的内容)
如何获取包含完整文档的呈现(完整)HTML,就像您通过浏览器阅读它一样?
以下示例是动态页面的示例:
与动态网站一样 - 上面的文字在源代码中找不到 - 只能通过浏览器看到。
当然我可以使用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并通过该访问页面的内容 - 但如果可能的话 - 这不是我想要的方式。