无头浏览器和抓取 - 解决方案

时间:2013-08-30 18:38:59

标签: selenium web-scraping scrapy phantomjs casperjs

我正在尝试为浏览器自动测试套装和能够抓取的无头浏览器平台提供可能的解决方案列表。


浏览器测试/清理:

  • Selenium - 浏览器自动化中的多语言旗舰,Python,Ruby,JavaScript,C#,Haskell等的绑定,Firefox for Firefox(作为扩展),可加快测试部署速度。可以充当服务器并具有大量功能。

JAVASCRIPT

  • PhantomJS - JavaScript ,使用屏幕捕获和自动化进行无头测试,使用 Webkit 。从版本1.8开始,实现了Selenium的WebDriver API,因此您可以使用任何WebDriver绑定,并且测试将与Selenium兼容
  • SlimerJS - 与PhantomJS类似,使用 Gecko (Firefox)代替 WebKit
  • CasperJS - JavaScript ,基于PhantomJS和SlimerJS构建,具有额外功能
  • PhantomJS
  • Ghost Driver - JavaScript WebDriver Wire Protocol 的实施。
  • PhantomCSS - CSS回归测试。 CasperJS模块,用于使用PhantomJS和Resemble.js自动进行可视化回归测试。
  • WebdriverCSS - Webdriver.io插件,用于自动化视觉回归测试
  • new PhantomFlow - 通过测试描述和可视化用户流程。 Web用户界面测试的实验方法。
  • new trifleJS - 移植PhantomJS API以使用Internet Explorer引擎。
  • CasperJS IDE (商业)

Node.js的

  • Node-phantom - 弥合 PhantomJS node.js
  • 之间的差距
  • WebDriverJs - Selenium团队对node.js的Selenium WebDriver绑定
  • WD.js - WebDriver / Selenium 2的节点模块
  • yiewd - 使用最新的Harmony生成器的WD.js包装器!使用 yield
  • 摆脱回调金字塔
  • ZombieJs - 使用 node.js
  • 进行快速无头的全栈测试
  • NightwatchJs - 使用Selenium Webdriver的基于节点JS的测试解决方案
  • Chimera - Chimera:可以做phantomJS所做的一切,但是在一个完整的JS环境中
  • Dalek.js - 通过Selenium Webdriver使用JavaScript进行自动跨浏览器测试
  • Webdriver.io - 使用预定义的50多个操作更好地实现WebDriver绑定
  • Nightmare - 具有高级API的电子桥。
  • jsdom - 针对网络抓取量身定制。在Node.js中实现的非常轻量级的DOM,它支持使用javascript的页面。

WEB SCRAPING / MINING

  • Scrapy - Python ,主要是一个刮刀/挖掘器 - 快速,记录良好,可以与Django Dynamic Scraper链接以进行不错的挖掘部署,或Scrapy Cloud PaaS(无服务器)部署,适用于终端或服务器独立进程,可与 Celery 一起使用,构建于 Twisted
  • 之上
  • Snailer - node.js 模块,尚未经过测试。
  • Node-Crawler - node.js 模块,尚未经过测试。

在线工具


相关链接&资源

问题:

  • 任何纯粹的Node.js解决方案或Nodejs到PhanthomJS / CasperJS模块实际工作并记录在案?

答案:奇美拉似乎走向那个方向,结帐Chimera

  • 其他能够比Selenium更容易进行JavaScript注入的解决方案吗?

  • 您知道任何纯粹的红宝石解决方案吗?

答案:使用基于ruby的解决方案检查rjk创建的列表

  • 你知道任何相关的技术或解决方案吗?

随时编辑此问题并根据需要添加内容!感谢您的贡献!

3 个答案:

答案 0 :(得分:30)

如果Ruby是您的事,您也可以尝试:

另外,Nokogiri宝石可用于刮擦:

有一本关于如何利用nokogiri通过packt发布进行抓取的专门书籍

答案 1 :(得分:9)

http://triflejs.org/就像phantomjs,但基于IE

答案 2 :(得分:6)

一种基于JS的Selenium是Dalek.js。它不仅针对自动前端测试,您还可以使用它进行屏幕截图。它有适用于所有重要浏览器的webdrivers。不幸的是,那些网络驱动程序似乎值得改进(只是不要说Firefox的“buggy”)。