代码之家  ›  专栏  ›  技术社区  ›  Matt Howell

支持javascript的好工具是什么?[关闭]

  •  29
  • Matt Howell  · 技术社区  · 16 年前

    有没有一个好的测试套件或工具集可以自动化网站导航(支持javascript)并从页面收集HTML?

    当然,我可以用漂亮的汤直接刮HTML。但这对需要JavaScript的站点没有好处。:)

    9 回复  |  直到 11 年前
        1
  •  26
  •   Jonny Buchanan    13 年前

    你可以使用 Selenium Watir 驱动真正的浏览器。

    还有一些基于javascript的无头浏览器:

    • PhantomJS 是无头WebKit浏览器。
      • pjscrape 是一个基于phantomjs和jquery的抓取框架。
      • CasperJS 是一个在phantomjs上的导航脚本和测试实用程序bsaed,如果您需要做的不仅仅是指向要擦除的URL。
    • Zombie 对于 Node.js

    就我个人而言,我最熟悉Selenium,它支持用大量语言编写自动化脚本,并具有更成熟的工具,例如优秀的 Selenium IDE 可用于编写和运行测试用例,并可将测试脚本导出到多种语言的Firefox扩展。

        2
  •  6
  •   Kevin Hakanson    15 年前

    使用 HtmlUnit 也是一种可能性。

    HTMLUnit是一款“无图形用户界面浏览器” “Java程序”。它模型HTML 文档和提供的API 允许您调用页面,填写 窗体、单击链接等…就像 在你的“普通”浏览器中。

    它有相当好的javascript支持 (不断改进)并且 即使很复杂也能工作 Ajax库,模拟 Firefox或Internet Explorer取决于 在要使用的配置上。

    它通常用于测试 目的或检索信息 来自网站。

        3
  •  4
  •   user177887    14 年前

    Selenium现在包装了HTMLUnit,因此您不再需要启动浏览器。新的WebDriverAPI也很容易使用。 The first example use htmlunit driver

        4
  •  2
  •   tyshock    16 年前

    要编写一个能与任何任意站点一起工作的解决方案是非常困难的。每个导航菜单实现都是非常独特的。我已经和scraper做了很多工作,如果你知道你想要的目标站点,下面是我将如何接近它。

    通常,如果分析nav菜单中使用的特定javascript,使用正则表达式拉出用于构建nav menu的整个变量集是相当容易的。我从来没有用过漂亮的汤,但从您的描述来看,它似乎只能在HTML元素上工作,不能在脚本标记内工作。

    如果您仍然有问题,或者需要模拟一些表单帖子或Ajax,请获取Firefox并安装 LiveHttpHeaders 插件。这个插件允许您手动浏览站点,并捕获正在导航的URL以及在手动浏览期间传递的所有cookie。这就是您需要您的scraperbot发送请求以从目标Web服务器获得有效响应的内容。这还将捕获正在进行的任何Ajax调用,在许多情况下,必须在scraper中实现相同的Ajax调用,以获得所需的响应。

        5
  •  2
  •   Mat    13 年前

    Mozenda 也是一个很好的工具。

        6
  •  2
  •   KJW    11 年前

    您可以从 Scrape.it

    更新:截至2013年4月4日scrape.it screen scraper在 github .

        7
  •  1
  •   William Keller    16 年前

    请记住,javascript的狂热正在干扰浏览者的页面内部dom模型,对原始HTML没有任何影响。

        8
  •  1
  •   Daniel Honig    16 年前

    我一直在用硒来做这个,结果发现它效果很好。 Selenium在浏览器中运行,将与firefox、webkit和ie一起工作。 http://selenium.openqa.org/

        9
  •  1
  •   Community Jaime Torres    7 年前