我如何获得由javascript生成的HTML?

时间:2009-12-20 11:39:39

标签: javascript html

我知道标题不是很清楚所以我会举个例子: 有站点A和站点B,假设它们是金融站点。我需要来自这两个网站的一页(关于意大利比萨报价的页面),比较一些价值并知道在哪里以及何时以更高的价格出售意大利比萨饼。 网站A的一切都非常简单,因为它不使用javascript并使用浏览器并点击语音菜单“意大利>意大利披萨”,我找到了我需要的www.siteA.com/italy/italianPizzaValues网址。 相反,当我浏览网站B时,点击语音菜单意大利将重定向到www.siteB.com/italy.do并点击意大利菜单上的声音如Pasta和Pizza不会更改网址但只是调用javascript函数(通常非常复杂的)。 因此,对于站点A,我使用libcurl下载页面www.siteA.com/italy/italianPizzaValues然后我解析它。我应该如何处理网站B以获得相同的结果并知道我对B网站的意大利比萨饼值?

2 个答案:

答案 0 :(得分:5)

The Productive Programmer中,Neal Ford建议将Selenium用于非测试目的,例如你的。 Selenium通过自动化与Web浏览器的交互来工作。它专为测试目的而设计,但可用于Neal Ford建议的其他用途。使用Selenium IDE,您可以记录您与网页的交互,引用HTML元素(包括由javascript呈现的元素),然后将生成的代码导出为几种高级编程语言之一(Java,.Net,PHP, Python,Perl或Ruby)。

答案 1 :(得分:1)

在沿着模拟真实浏览器并执行JavaScript的路线前,尝试使用网络监视器在真实浏览器中访问相关页面。在“网络”选项卡上打开Firebug的Firefox是一个,或者是IE的Fiddler。

查看点击“Pizza”时发生的请求和响应,看看是否有明显的XMLHttpRequest似乎包含您要查找的数据。如果是这样,那么只要提出一个请求就会快得多。