2011-03-04 58 views
0

我想开发一个应用程序,它会自动(基于某种逻辑)抓取网页。自动点击并张贴在页面上进行测试。把它想象成Selenium你能推荐任何可嵌入的Javascript引擎吗?

对于简单的网页,这可以很容易地完成我的废除HTML代码,然后提出一个新的请求到服务器的下一页。问题在于处理Ajax页面。 如何处理HTML中的JS代码?

要分解它,问题的不同部分将会是。 JS引擎必须: -

  1. 解析HTML代码,使服务器请求获取外部简称JS文件。可能会提供一个钩子让用户代码为引擎获取它。
  2. 在浏览器中创建HTML元素的DOM树,并让用户代码访问并操作它们。
  3. 让用户代码挂钩到JS事件。

一个典型的JS代码执行以下任务: -

  1. 访问DOM元素。
  2. 操作现有DOM元素。

    a.This可以是化妆品(如更改高度等)用户代码没有兴趣,这将是非常困难的,因为它需要一个布局引擎。

    b。这可以是属性的操纵。用户代码会对此感兴趣。

  3. 添加新的DOM元素。

  4. 为Ajax发出Http请求。

你可以给我任何可嵌入的JS引擎,我可以用来实现所有这些?我选择的语言是Java,但是C/C++或Python可以。我不确定,但Mozilla Rhino是否符合上述法案?

+0

如果我要把它想像为硒,我不妨使用硒... – 2011-03-04 19:18:50

+0

也许吧。如果Selenium在我入伍的时候控制了JS,那么我的下一个问题是否会做到这一点? – AppleGrew 2011-03-04 19:25:18

回答

3

看看HtmlUnit

+0

发现更多:在Python中 - (1)http://wiki.python.org/moin/WebBrowserProgramming(部分:围绕Web“库”和浏览器技术的Python包装)(2)http://berkelium.org/。将需要找出哪一个足够成熟。 HtmlUnit有多好? – AppleGrew 2011-03-05 02:50:45

+0

HtmlUnit非常成熟。我个人已经完成了几个项目,并取得了很好的成绩。 – 2011-03-05 13:31:06

0

我们使用Cobra项目进行了一些我们正在做的工作,我们需要检索网页并在其中执行javascript。不知道你是否可以根据你的需求调整项目。

+0

看起来,眼镜蛇在渲染上很原始。 – AppleGrew 2011-03-06 04:13:57