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


368

我正在尝试列出适用于浏览器自动测试套装和能够抓取的无头浏览器平台的可能解决方案。


浏览器测试/报废:

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

JAVASCRIPT

  • PhantomJS - JavaScript使用Webkit进行无头测试,包括屏幕捕获和自动化。从1.8版开始,Selenium的WebDriver API已实现,因此您可以使用任何WebDriver绑定,并且测试将与Selenium兼容
  • SlimerJS-与PhantomJS相似,使用Gecko(Firefox)代替WebKit
  • CasperJS - JavaScript的,建立在两个PhantomJS和SlimerJS,具有额外的功能
  • 幽灵驱动程序 - 的JavaScript执行的webdriver的Wire协议PhantomJS
  • 新的 PhantomCSS -CSS回归测试。一个CasperJS模块,用于使用PhantomJS和 Resemble.js自动化视觉回归测试。
  • WebdriverCSS -插件为 Webdriver.io自动化视觉回归测试
  • 新的 PhantomFlow-描述和可视化通过测试的用户流程。Web用户界面测试的实验方法。
  • 新的 trifleJS-移植 PhantomJS API以使用Internet Explorer引擎。
  • 新的 CasperJS IDE (商业)

NODE.JS

  • Node- phantom-弥合PhantomJSnode.js之间的鸿沟
  • WebDriverJs -Selenium Team对node.js的Selenium WebDriver绑定
  • WD.js -WebDriver / Selenium 2的节点模块
  • yiewd - WD.js包装采用最新和谐发电机!用yield摆脱回调金字塔
  • ZombieJs-使用node.js进行快速,无头的全栈测试
  • NightwatchJs-使用Selenium Webdriver的基于Node JS的测试解决方案
  • Chimera -Chimera:可以完成phantomJS的所有工作,但要在完整的JS环境中
  • Dalek.js-通过Selenium Webdriver使用JavaScript自动进行跨浏览器测试
  • Webdriver.io-通过预定义的50多个操作更好地实现WebDriver绑定
  • 噩梦 -具有高级API的电子桥。
  • jsdom-专门针对网络抓取。Node.js中实现的一种非常轻量级的DOM,它支持带有javascript的页面。
  • 新的 Puppeteer-节点库,提供了用于控制Chrome或Chromium的高级API。默认情况下,Puppeteer无头运行。

网页抓取/挖掘

  • Scrapy - Python,主要是一个scraper / miner-快速,完善的文档说明,可以与Django Dynamic Sc​​raper链接以进行良好的挖掘部署,或与Scrapy Cloud进行PaaS(无服务器)部署相结合,可在终端或服务器独立程序中运行,可与Twisted顶部的Celery一起使用
  • Snailer - node.js模块,未经测试。
  • Node-Crawler - node.js模块,尚未测试。

在线工具


相关链接和资源

问题:

  • 是否有任何纯粹的Node.js解决方案或PhanthomJS / CasperJS模块的Nodejs实际上有效并已记录在案?

答: Chimera似乎朝这个方向发展,结帐Chimera

  • 其他比Selenium更容易注入JavaScript的解决方案?

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

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

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

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


1
不知道这是否就是您想要的,但是我喜欢该模块,用于爬网网页,检查dom等:npmjs.org/package/crawler。它使用jsdom,您可以将jQuery作为选择器引擎。这个(使用抓取工具)看起来也很有趣:npmjs.org/package/snailer
hereandnow78 2013年

我在node-phantom模块上取得了很多成功。这很简单,而且文档也很齐全。它确实支持javascript注入。
Josh C.

1
我相信您知道GhostDriver是使用phantomJS的Selenium-Webdriver的实现
Robbie Wareham

2
您可能还会发现此帮助:blog.screen-scraper.com/2010/06/28/…–
todd

1
对于视觉抓取和比较:PhantomCSS和PhantomFlow
FelipeAls 2013年

Answers:


35

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

此外,Nokogiri宝石还可用于刮擦:

有专门的书,介绍如何利用nokogiri通过packt出版进行抓取


watir比上面的库容易上千倍。
Pavan Katepalli

对于python,“ webbot”库提供了丰富的功能,可轻松实现网络自动化。
Natesh bhat


7

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.