微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为 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 举报,一经查实,本站将立刻删除。