5

有没有办法使用 HTTPWebRequest 获取网页,然后执行页面上的所有 javascriptcode 以及 ajax 调用并将结果保存到字符串?

我想解析一个网站,其中一些图像是通过 js 代码生成的,并且在 js 脚本运行之前图像不在网页上。

现在我在网上搜索了一个解决方案,但我发现的只是这样的答案是不可能的,请改用网络浏览器,这对我来说不是一个选择。

问候

4

3 回答 3

2

您可以使用 C++ http 系统来执行此操作,它可以让您对接收的数据片段进行大量控制,但我想这并不是一个真正的答案,所以......

为什么不尝试将webkit 放入您的应用程序中,并从中运行事件。它有几个事件可以在下载开始和完成时通知您。

于 2012-11-16T20:10:45.323 回答
1

我做了一些研究,只是因为我觉得它很有趣。我发现了一个名为 Phantom.js 的东西,看起来它可以满足您的需求。看看: http: //phantomjs.org/

于 2012-11-16T20:16:49.757 回答
0

正如我在尝试满足急需的需求时发现的那样,这确实是不可能的。Javascript 将执行,但不会进行 Ajax 调用。

我确定的解决方案是通过代码隐藏文件(C# 代码)同步获取 Ajax 调用将拥有的所有数据,并使用脚本标签将代码隐藏变量分配给 Javascript 变量,并让 Javascript 完成它的工作(构建动态元素等)

于 2012-11-16T19:42:31.997 回答