在WebClient中加载动态生成的HTML代码

时间:2013-07-07 15:01:09

标签: c# webclient

我正在使用WebClient.DownloadString来废弃网页,遗憾的是DownloadString在没有CSS和JS更新(在网页加载时在Internet Explorer中制作)的情况下获取了页面源代码。

所以我想知道如何使用WebClient以与Internet Explorer或WebBrowser控件相同的方式加载整个页面? (使用css和js代码注入)

2 个答案:

答案 0 :(得分:1)

  

所以我想知道如何使用WebClient以与Internet Explorer或WebBrowser控件相同的方式加载整个页面?

你做不到。 WebClient类用于使用HTTP协议下载 SINGLE 资源。它不理解HTML的概念。如果您需要在此HTML中下载相关资源,则必须使用HTML解析器(例如HTML Agility Pack)以及在下载的HTML页面中遇到的每个CSS和javascript,使用WebClient发送另一个HTTP请求检索它。

但请记住,根据您尝试抓取的网页,可能会变得更加复杂。例如,网页可以具有javascript,其反过来动态地引用并包括其他静态资源,例如javascript或CSS。 WebClient,因为它不执行javascript可能永远不会知道它们。

答案 1 :(得分:0)

对你来说最好的解决方案是(https://htmlagilitypack.codeplex.com/),它会为你下载webapage的所有内容,但我不确定你是否可以使用这个工具获得css + javascript代码