如何使用Mechanize处理JavaScript?

时间:2009-04-29 12:51:41

标签: javascript html ruby mechanize

我正在连接到一个网站,登录。

网站将我重定向到新页面,而Mechanize处理所有Cookie和重定向作业,但是,我无法获得最后一页。我使用Firebug并再次做同样的工作,看到还有两页我必须通过Mechanize传递。

我快速浏览了一下页面,看到有一些JavaScript和HTML代码,但无法理解,因为它看起来不像普通的页面代码。那些页面是什么?他们如何重定向到其他页面?我该怎么办才能通过这些?

3 个答案:

答案 0 :(得分:37)

如果您需要使用Javascript处理网页,请尝试使用WATIRSelenium - 那些驱动真实的网络浏览器,因此可以处理任何Javascript。 WATIR Classic需要安装了某个扩展程序的IE或Firefox,并且您会看到页面在屏幕上闪烁。

您的另一个选择是了解违规页面上的Javascript并手动绕过它,但这看起来很麻烦。

答案 1 :(得分:14)

目前,Mechanize不处理JavaScript。有人说最终将Johnson的功能合并到Mechanize中,但在此之前,你有两个选择:

  1. 很好地理解JavaScript,以了解如何遍历这些页面。
  2. 使用Watir自动化 了解JavaScript的实际浏览器。

答案 2 :(得分:5)

  那些页面是什么?他们如何重定向到其他页面。我该怎么办才能通过这些?

有时候会在这些页面上完成工作。有时JavaScript会阻止自动访问,就像你想要做的那样:)。很多网站都有不必要的检查,以确保你有一个“好”的浏览器,所以要确保你的user_agent设置为常见的东西,如IE。有时将user_agent设置为旧浏览器可让您在没有JavaScript的情况下过去。

网站自动化很有趣,因为您必须使用多种策略来超越网站及其软件开发人员。和其他人一样,Watir是目前通过JavaScript的最佳工具。