无头浏览器和抓取 - 解决方案 [关闭]
Posted
技术标签:
【中文标题】无头浏览器和抓取 - 解决方案 [关闭]【英文标题】:Headless Browser and scraping - solutions [closed] 【发布时间】:2013-09-03 13:43:32 【问题描述】:我正在尝试为浏览器自动测试套件和能够抓取的无头浏览器平台列出可能的解决方案。
浏览器测试/抓取:
Selenium - polyglot 是浏览器自动化的旗舰,Python、Ruby、javascript、C#、Haskell 等的绑定,用于 Firefox 的 IDE(作为扩展)用于更快的测试部署。可以充当服务器并具有大量功能。JAVASCRIPT
PhantomJS - JavaScript,带有屏幕捕获和自动化的无头测试,使用 Webkit。自 1.8 版起,实现了 Selenium 的 WebDriver API,因此您可以使用任何 WebDriver 绑定,并且测试将与 Selenium 兼容 SlimerJS - 类似于 PhantomJS,使用 Gecko (Firefox) 而不是 WebKit CasperJS - JavaScript,基于 PhantomJS 和 SlimerJS 构建,具有额外的功能 Ghost Driver - JavaScript 为 PhantomJS 实现 WebDriver Wire Protocol。 新 PhantomCSS - CSS 回归测试。一个 CasperJS 模块,用于使用 PhantomJS 和 Resemble.js 自动进行视觉回归测试。 新 WebdriverCSS - Webdriver.io 的插件,用于自动化视觉回归测试 新 PhantomFlow - 通过测试描述和可视化用户流程。一种实验性的 Web 用户界面测试方法。 新 trifleJS - 移植 PhantomJS API 以使用 Internet Explorer 引擎。 新 CasperJS IDE (商业)NODE.JS
Node-phantom - 弥合 PhantomJS 和 node.js 之间的差距 WebDriverJs - Selenium Team 为 node.js 绑定 Selenium WebDriver WD.js - WebDriver/Selenium 2 的节点模块 yiewd - 使用最新 Harmony 生成器的 WD.js 包装器!用 yield 摆脱回调金字塔 ZombieJs - 使用 node.js 进行快速、无头的全栈测试 NightwatchJs - 使用 Selenium Webdriver 基于 Node JS 的测试解决方案 Chimera - Chimera:可以做 phantomJS 做的所有事情,但在一个完整的 JS 环境中 Dalek.js - 通过 Selenium Webdriver 使用 JavaScript 自动进行跨浏览器测试 Webdriver.io - 使用预定义的 50 多个操作更好地实现 WebDriver 绑定 Nightmare - 具有高级 API 的电子桥。 jsdom - 专为网页抓取而设计。一个在 Node.js 中实现的非常轻量级的 DOM,它支持带有 javascript 的页面。 新 Puppeteer - 提供高级 API 来控制 Chrome 或 Chromium 的节点库。 Puppeteer 默认无头运行。网页抓取/挖掘
Scrapy - Python,主要是一个爬虫/矿工 - 快速,有据可查,可以与 Django Dynamic Scraper 链接以进行良好的挖矿部署,或 Scrapy Cloud 用于 PaaS(无服务器)部署,在终端或服务器独立进程中工作,可以与 Celery 一起使用,构建在 Twisted 之上 Snailer - node.js 模块,尚未测试。 Node-Crawler - node.js 模块,尚未测试。在线工具
新 Web Scraping Language - 抓取网络的简单语法
新 Online HTTP client - 专门的 SO 答案
dead CasperBox - 在线运行 CasperJS 脚本
Android 自动化工具
新 Mechanica Browser App相关链接和资源
Comparsion of Webscraping software 新 Resemble.js:图像分析和比较问题:
任何纯 Node.js 解决方案或 Nodejs 到 PhanthomJS/CasperJS 模块的实际工作并记录在案?答案:奇美拉似乎朝那个方向发展,结帐Chimera
其他比 Selenium 更容易注入 JavaScript 的解决方案?
您知道任何纯 ruby 解决方案吗?
答案:查看由 rjk 使用基于 ruby 的解决方案创建的列表
您知道任何相关的技术或解决方案吗?请随意编辑此问题并根据需要添加内容!感谢您的贡献!
【问题讨论】:
不知道那是不是你想要的,但我喜欢那个用于抓取网页、检查 dom 等的模块:npmjs.org/package/crawler。它使用 jsdom,您可以使用 jQuery 作为选择器引擎。这个(使用爬虫)看起来也很有趣:npmjs.org/package/snailer 我在 node-phantom 模块上取得了很大的成功。它非常简单,并且有据可查。它确实支持 javascript 注入。 我相信你知道 GhostDriver 是一个使用 phantomJS 的 Selenium-Webdriver 的实现 您可能还会发现这很有帮助:blog.screen-scraper.com/2010/06/28/… 视觉抓取和比较:PhantomCSS 和 PhantomFlow 【参考方案1】:如果你喜欢 Ruby,你也可以试试:
https://github.com/chriskite/anemone(开发停止) https://github.com/sparklemotion/mechanize https://github.com/postmodern/spidr https://github.com/stewartmckee/cobweb http://watirwebdriver.com/(硒)此外,Nokogiri gem 可用于刮擦:
http://nokogiri.org/packt publishing 有一本专门介绍如何利用 nokogiri 进行抓取的书
【讨论】:
watir 比上面的库简单一千倍。 对于python“webbot”库提供了丰富的功能,便于网络自动化。【参考方案2】:http://triflejs.org/ 类似于 phantomjs 但基于 IE
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 这听起来不错,但这个问题本身就是一个资源集合。包含要包含在列表中的简短描述的链接符合格式并且有意义。【参考方案3】:一种基于JS的Selenium是Dalek.js。它不仅针对自动化前端测试,您还可以使用它进行屏幕截图。它具有适用于所有重要浏览器的网络驱动程序。不幸的是,这些网络驱动程序似乎值得改进(只是不要对 Firefox 说“错误”)。
【讨论】:
以上是关于无头浏览器和抓取 - 解决方案 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Python 的无头浏览器(需要 Javascript 支持!)[关闭]
使用无头浏览器进行 Android Web Scraping [关闭]
Python/Firefox 无头抓取脚本中的“无法解码木偶的响应”消息