为 Panther 设置一个 ChromeDriver 实例,而不是为每个请求创建一个

问题描述

我在一个不使用 Symfony 的 PHP 项目中使用 Symfony Panther 进行网络抓取(不是测试)。我是通过 Composer 安装的。每次我需要抓取用户提交的链接时,我都会启动一个新的 Chrome 浏览器。

$client = Symfony\Component\Panther\Client::createChromeClient('/usr/bin/chromedriver');
$client->request('GET',$url);
$crawler = $client->waitFor('body');

为每个提交的 $url 启动一个新的 Chrome 浏览器很慢并且占用大量资源,所以我想让 Chrome 客户端在端口 9515 上运行,然后每个用户$url 请求可以连接到相同的实例。基于 Github 上的 some 用户 comments,这听起来是一个合理的方法

  • 在 Linux 服务器上启动 Chrome 实例,在端口 9515 上运行
  • 使每个 url 请求连接到该实例。

我在 CRON 作业的 PHP 脚本中放置了第一行,即使用 createChromeClient,但它从未启动 chrome 客户端,我也没有收到任何错误。任何想法如何实现这一目标?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)