我尝试使用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并发布测试版,但它对我不起作用!
现在,我做什么?有没有办法刮掉这个页面?
答案 0 :(得分:2)
虽然PhantomJS的未来还不确定,但我建议使用另一个无头浏览器:puppeteer。它基于谷歌Chrome无头,后面是一个独立的谷歌工程师团队。
有already projects从PHP控制它,目前最值得注意的是puphpeteer *
__
*(值得注意的是它不仅可以制作截图/ PDF,还可以提供javascript评估)