【发布时间】:2018-03-01 12:49:26
【问题描述】:
我尝试使用 phantomjs 和 php phantomjs 抓取一些 URL 的数据,但是我的目标页面使用 ES6 生成了一些数据,而 phantomjs 还不支持它,并且我遇到了一些这样的错误(在控制台日志中):
ReferenceError: Can't find variable: Set
我的代码是:
use JonnyW\PhantomJs\Client;
$client = Client::getInstance();
$client->getEngine()->setPath('C:\\Users\\XXX\\Desktop\\bin\\phantomjs.exe');
$request = $client->getMessageFactory()->createRequest('example.com', 'GET');
$response = $client->getMessageFactory()->createResponse();
$client->send($request, $response);
var_dump($response->getConsole());
我搜索了很多!我发现 phantomjs 将在新版本 ( v2.5 ) 中支持 ES6 并发布一个 beta 版本,但它对我不起作用!
现在,我该怎么办?有什么方法可以抓取这个页面吗?
【问题讨论】:
-
如果你可以抛弃 PHP,试试 puppeteer,可以说它就像新的 PhantomJS。
-
@Vaviloff 抱歉,我不知道如何使用它!有没有学习如何在 php 中使用它的教程?
-
不知道的可以找教程对吧?
-
@Vaviloff 我正在搜索“如何将 puppeteer 与 php 结合使用”,但我找不到任何东西!