2009-12-20 62 views
2

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

回答

5

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

+1

现在很酷。 – 2009-12-20 11:58:03

1

在您开始模拟真实浏览器并执行JavaScript之前,请尝试使用网络监视器在真实浏览器中访问相关页面。在'Net'选项卡上打开Firebug的Firefox是一个,或者IE的Fiddler。

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

相关问题