问题标签 [phantomjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - PhantomJS 和修改 DOM
我正在开发一个工具,它需要从 3rd 方服务器下载网页,像浏览器一样执行它,然后解析 HTML。我遇到的问题是该工具需要在执行所有 javascript 并修改 DOM 后解析 HTML。我正在尝试为此目的使用 PhantomJS,它适用于一小段代码(只是一个带有外部 javascript 的小 html 文档,它向 DOM 添加了一些节点)但是当我对一个真实的网站(http://www .dba.dk/ ) 在 js 代码完成所有修改后,我没有得到最终的 HTML。
我真的需要帮助,因为我已经坚持了一个多星期。
我的 PhantomJS 代码很简单:
转储到控制台的 HTML 不包含动态生成的内容
javascript - 使用 javascript (phantomjs) 导航/抓取 hashbang 链接
我正在尝试下载几乎完全由 JavaScript 生成的网站的 HTML。所以,我需要模拟浏览器访问并且一直在玩PhantomJS。问题是,该站点使用 hashbang URL,我似乎无法让 PhantomJS 处理 hashbang——它只是不断调用主页。
该网站是http://www.regulations.gov。默认将您带到#!home。我尝试使用以下代码(来自此处)来尝试处理不同的 hashbang。
此代码生成正确的 hashbang(例如,我可以将 hash 设置为 '#!contactus'),但它不会动态生成任何不同的 HTML——只是默认页面。但是,它确实正确输出了我调用document.location.hash
.
我也尝试将初始地址设置为 hashbang,但是脚本只是挂起并且没有做任何事情。例如,如果我将 url 设置http://www.regulations.gov/#!searchResults;rpp=10;po=0
为脚本,则在将地址打印到终端后挂起,并且什么也没有发生。
javascript - Phantom JS - clipRect - Javascript 帮助
我正在使用 phantom js 截屏页面
http://code.google.com/p/phantomjs/wiki/QuickStart#Rendering
它有一个名为 clipRect 的功能
http://code.google.com/p/phantomjs/wiki/Interface#clipRect_(object )
有人可以告诉我如何将以下代码修改为我们的clipRect,这样我只能得到部分截图而不是全部截图吗?
ruby-on-rails - 从 Ruby on Rails 应用程序运行 phantomjs
我对使用Phantomjs很感兴趣,我想从我的 Ruby on Rails 应用程序中运行它。然而,这是一个命令行工具(即我需要phantomjs rasterize.js http://raphaeljs.com/polar-clock.html clock.png
在我的终端中运行类似的东西)。我将如何从我的应用程序执行命令行工具?
ruby-on-rails - 在 Heroku 上运行 Phantomjs
有没有办法在 Heroku 上运行phantomjs,一个命令行工具?
javascript - phantomjs:找不到命令
我遵循了这些说明(除了将可执行文件复制到我的 PATH 之外,因为我似乎找不到它并且似乎没有必要)。然后我在我的公共 javascripts 目录中创建了一个名为 image_render.js 的文件
在里面,保存它,然后phantomjs render_image.js
在我的终端中运行。但是,我的终端无法识别该命令:
我做错了什么?
ruby-on-rails - 在 Ruby 中并行运行命令行进程
我正在使用命令行工具 PhantomJS 来渲染网站的图像,我想并行运行其中的一些,而不是一个接一个地运行。我怎样才能做到这一点?
web-scraping - 任何人都可以显示登录 gmail 的示例,然后使用 phantomjs 将第一封邮件打印到 png 吗?
任何人都可以显示登录 gmail 的示例,然后使用 phantomjs 将第一封邮件打印到 png 吗?
我想了解的是登录 gmail 的示例,然后根据结果在下一个网页上执行另一项操作...
javascript - 为什么 https://gist.github.com/384583 上的 watch() 和 unwatch() 垫片在 phantomjs 中不起作用?
我正在做一些服务器端的 javascript 零碎工作,它们基本上需要访问网站的完整 DOM 和跨域打开站点的能力,至少到目前为止,PhantomJS 似乎是完成这项工作的最佳工具。
但是,它缺少我希望拥有的 Object.watch() 方法。因此,我正在尝试使用在 Stackoverflow 上其他地方发布的 shim 作为答案(可在此处获得:https ://gist.github.com/384583 )让我可以访问这些方法。
它不工作。
它也远远超出了我对 JavaScript 的理解水平 - 所以我想知道是否有人可以帮助我准确理解它在做什么,以及为什么它可能不起作用?
谢谢您的帮助,
托比
(下面引用的代码:
还有我的测试代码:
phantomjs - Ubuntu 11 服务器中的 PhantomJS,PNG 图像看起来是 256 色
所以我在 Ubuntu 11 服务器上使用 PhantomJS,并且在完成设置它所需的一切(包括安装 Xvfb)之后,我发现捕获的网页似乎保存为 256 色 PNG 文件。
我在 Windows 上安装了 Phantom,它根本没有这个问题。网页是完整的 32 位颜色。有任何想法吗?