我在一个不使用 Symfony 的 PHP 项目中使用 Symfony Panther 进行网页抓取(不是测试)。我通过 Composer 安装。每次我需要抓取用户提交的链接时,我都会启动一个新的 Chrome 浏览器。
$client = Symfony\Component\Panther\Client::createChromeClient('/usr/bin/chromedriver');
$client->request('GET', $url);
$crawler = $client->waitFor('body');
为每个提交的文件启动一个新的 Chrome 浏览器$url
既慢又占用资源,所以我想让 Chrome 客户端在端口 9515 上运行,然后每个用户的$url
请求都可以连接到同一个实例。根据 Github 上的一些用户评论,这听起来是一种合理的方法:
- 在 Linux 服务器上启动一个 Chrome 实例,在端口 9515 上运行
- 使每个 url 请求连接到该实例。
我将第一行,即 createChromeClient 放在 CRON 作业的 php 脚本中,但它从未启动 chrome 客户端,我也没有收到任何错误。任何想法如何实现这一目标?