【问题标题】:PHP : Scrape data generated with javascript ( ES6 )PHP:使用 javascript ( ES6 ) 生成数据
【发布时间】: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 结合使用”,但我找不到任何东西!

标签: php phantomjs scrape


【解决方案1】:

虽然 PhantomJS 的未来还不确定,但我可以建议使用另一个无头浏览器:puppeteer。它基于 Google Chrome 无头浏览器,背后是一个独立的 Google 工程师团队。

already projects可以从PHP控制它,目前最值得注意的是puphpeteer*

__
*(值得注意的是它不仅可以制作屏幕截图/PDF,还可以提供javascript评估)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 2013-06-07
    • 2012-10-25
    • 2020-08-08
    • 1970-01-01
    • 2023-03-21
    • 2013-05-31
    相关资源
    最近更新 更多