问题标签 [php-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.

0 投票
1 回答
861 浏览

ubuntu - 如何解决 ubuntu 中 phantom js 的权限被拒绝错误?

我正在开发一个 laravel 项目,我正在尝试使用jonnyw 制作的 phantom js 的php 包装器。我已经完成了文档中写的所有内容。

我已经下载了 32 位可执行文件并在我的代码中设置了路径,但它仍然给我以下错误: sh: 1: /usr/local/bin/: Permission denied

我的代码看起来像这样

我已经阅读了一些相关的问题

我正在使用 jonnnnyw/php-phantomjs 的 laravel 5.4 和 4.0 版本。

0 投票
1 回答
801 浏览

javascript - PhantomJs 屏幕截图未正确呈现

我们正在开发一种网络爬虫类型的东西,用户输入网站的 url,我们的网络应用程序会生成网站的屏幕截图。我们使用 phantomjs 的渲染来生成 PNG 格式的屏幕截图。尽管在大多数情况下它就像一个魅力,但有些网站没有正确呈现。例如,如果您使用http://dorevi.lt/它在浏览器中显示的网站:

浏览器快照(在最新的 chrome 和 ie 上测试)

然而 phantom 渲染的截图如下:

phantom 2.1 渲染的图像

您可以看到它拉伸了中心表并打破了中间的内容。到目前为止,我尝试过的是:

  1. 试图在页面读取和页面渲染之间放置各种延迟,甚至长达 30 秒,但没有运气。

  2. 尝试了这个答案中的所有解决方案,我们等待加载 DOM 内容(内部 stlysheets 等),但同样的输出

  3. 尝试在执行 phanjomjs 脚本时添加所有可能的参数,这就是我的最终命令的样子: phantomjs.exe --ignore-ssl-errors=true --load-images=true --ssl-protocol=any --debug=true --local-to-remote-url-access=true --web-security=false --disk-cache=false script.js

如您所见,我也使用了所有可能的标志,但输出仍然相同。请帮助我,因为我们需要确保生成准确的网页截图。

信息:使用的 Phantomjs 版本:2.1 操作系统:CentOS 用于生产,也在 Windows 7 上进行测试,输出相同 技术:应用程序用于构建 PHP

编辑 1:添加 --debug=true 输出

0 投票
2 回答
387 浏览

javascript - 如何将 simple_html_dom 与 phantomjs 一起使用

我正在尝试让这两个库相互协作,我当前的代码如下所示:

phantomjs.js

刮刀.php

我得到的是这样的:

返回错误的 simple_html_dom 函数:

当我使用时,var_dump($output)我得到了网站的 html,所以我知道该命令正在运行,但 simple_html_dom 似乎不接受它!

0 投票
1 回答
207 浏览

php - 试图从 php 执行 phantomjs

您好,我在使用 phantomjs 时遇到了一些问题。我尝试执行一个简单的语句,但我一遍又一遍地得到同样的错误。

我得到这个:

是什么赋予了?我在 mac 上,phantomjs 有 777 权利。

0 投票
1 回答
682 浏览

php - 在共享主机上安装 PhantomJS (1and1)

使用 1and1 linux 共享主机,

我已经安装了:

PHP 版本 7.0.27 PHP PhantomJS 2.1.1

PHP PhantomJS 所有值都为空

每当我提出请求时:

我有一堆空值,并且 phantomJS 没有处理 URL...

要求:

回复:

它只是从不返回内容

请帮忙

编辑:日志:

/kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x41f5c4] 10 0x415b86 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [ 0x415b86] 11 0x2b1fc0917b45 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x2b1fc0917b45] 12 0x4176a1 /kunden/homepages/0/d220355082/htphanjs/bitme/core/composer/bin [0x4176a1] PhantomJS 已崩溃。请阅读错误报告指南 6(__libc_start_main+0xf5) [0x2b1fc0917b45] 12 0x4176a1 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x4176a1] PhantomJS 已崩溃。请阅读错误报告指南 6(__libc_start_main+0xf5) [0x2b1fc0917b45] 12 0x4176a1 /kunden/homepages/0/d220355082/htdocs/bitme/core/composer/bin/phantomjs() [0x4176a1] PhantomJS 已崩溃。请阅读错误报告指南 http://phantomjs.org/bug-reporting.html并提交错误报告。分段错误 " int(0) NULL

编辑:

如果我用最新下载替换 phantomJS,

我得到 libicui18n.so.55 缺少依赖项

如何使用 Composer 安装它?

请注意,这需要安装在共享主机上,因此我在机器上没有 root/sudo 访问权限

感谢所有帮助。

0 投票
1 回答
211 浏览

laravel - 如何显示来自自定义 phantomjs 脚本的响应

我似乎无法显示来自我的自定义 .proc 文件的响应。我在 ubuntu 上的 laravel 5.6 上运行 php-phantomjs。我有一个用于调用自定义文件的 URL 端点,如下所示:

这是 .proc 文件

我想在我的浏览器上显示“contentNeeded”。

0 投票
1 回答
752 浏览

php - 未知:输出处理程序“ob_gzhandler”与 php-phantomjs 中的“zlib 输出压缩”冲突

我无法从 php-phantom 获取任何数据它对我不起作用我在尝试使用 php-phantom 获取源页面时在 php_log 文件中发现了这个错误,这是完整代码

0 投票
1 回答
230 浏览

javascript - PHP PhantomJS 在 JavaScript 重新加载后获取页面内容

我正在尝试使用php-phantomjs获取此页面的内容。经过一番挖掘,我注意到这个页面首先加载了这段 JavaScript 代码:

这清楚地用我的 IP 地址设置了一个 cookie,然后重新加载页面。

我正在以这种方式执行来自我的 PHP 服务器的请求:

它返回一个空页面,var_dump($response->getContent())表明它是NULL

我认为 PhantomJS 没有执行location.reload()调用,如果是这种情况,有人可以告诉我如何进行重新加载吗?或者可能是什么问题导致了这种情况?

编辑:使用基本使用指南中提到的此链接“ http://jonnyw.me ”时,脚本运行良好。

0 投票
1 回答
234 浏览

php - 为什么php phantomjs没有在响应内容中执行js代码

我需要获取带有已执行 js 的 html,为此我安装了 phantomjs,但在获取内容时,我仍然有旧的 html,带有旧数据,数据应该由 js 脚本处理,并且应该更改为带有某个类的 span 标签,该脚本应该执行。我正确理解,当我打开获取内容时,我应该获取带有处理数据的 DOM,这意味着标签跨度而不是 json 元素?我mssed什么?

但是js没有执行,我没有处理#pretty_json_id中的数据

在浏览器中,everythink 工作。但我需要存在执行 js 的 html

日志信息

0 投票
0 回答
65 浏览

php - phantomjs 从某个网站返回空内容

有一个国家网站gov.kz。我想从那里获取信息并将其粘贴到我的项目中,以便有关状态服务的所有信息都将放在一个方便的地方。以前,状态站点位于不同的域中,并且一切都与 Simple HTML DOM 库配合良好。现在他们已经更改了站点,我无法使用 Simple DOM、cURL 或 phantomjs 进行解析。问题是通过 phantomjs 的解析算法适用于除此之外的所有其他站点。感觉 index.html 在没有填充上下文的情况下被解析(我不知道,也许站点脚本没有运行)。我附上下面的代码。PS 我尝试了此代码的不同变体,但没有帮助。

获取网站.php:

获取网站.js: