1

好吧,不幸的是,我正在使用它WebClient.DownloadString来废弃网页,这DownloadString让我获得了没有 CSS 和 JS 更新的页面源(这些更新是在页面加载时在 Internet Explorer 中制作的)。

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

4

2 回答 2

1

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

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

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

于 2013-07-07T15:03:01.880 回答
0

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

于 2016-03-23T10:22:09.273 回答