Ubuntu22.04 安装部署 php-webdriver 自动化工具

一、安装 PHP 8.3

更新系统存储库

ruby 复制代码
$ sudo apt update

安装所需的依赖项

arduino 复制代码
$ sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y

设置 PHP 存储库

shell 复制代码
$ sudo add-apt-repository ppa:ondrej/php

按"Enter"允许提示继续。

安装 PHP 8.3

ruby 复制代码
$ sudo apt install php8.3

输入"y"让系统完成 PHP 8.3 安装。

验证PHP版本

ruby 复制代码
$ php -v

安装 PHP 8 扩展

python 复制代码
$ sudo apt install php8.3-cli php8.3-common php8.3-imap php8.3-redis php8.3-xml php8.3-zip php8.3-mbstring

二、安装 Composer

更新系统软件包

ruby 复制代码
$ sudo apt update

安装所需的软件包

ruby 复制代码
$ sudo apt install php-cli unzip

下载 PHP Composer 安装文件

shell 复制代码
$ curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

使用官方页面上的签名验证下载的 PHP Composer 脚本的哈希值:

ini 复制代码
$ HASH=`curl -sS https://composer.github.io/installer.sig`

然后,验证 PHP Composer 安装程序是否可以安全执行:

less 复制代码
$ php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

安装 PHP Composer

shell 复制代码
$ sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

测试 PHP Composer

最后,通过在终端中运行"composer"命令来查看安装是否成功:

ruby 复制代码
$ composer

三、安装 Chrome 浏览器

bash 复制代码
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 
sudo dpkg -i google-chrome-stable_current_amd64.deb

如果提示缺少依赖,执行:

arduino 复制代码
sudo apt-get install -f

四、安装 chromedriver

在下面地址页面下载与你 chrome 浏览器版本相同或相近的 chromedriver 版本。因为 Chrome 安装的一般是 stable 最新版,所以下载 stable 最新版 chromedriver 并即可。

googlechromelabs.github.io/chrome-for-...

下载后解压,得到 chromedriver 启动文件。例如:

bash 复制代码
wget https://storage.googleapis.com/chrome-for-testing-public/121.0.6167.184/linux64/chromedriver-linux64.zip
unzip chromedriver-linux64.zip

启动 chromedriver

ini 复制代码
chromedriver --port=4444

五、安装 php-webdriver 库:

bash 复制代码
mkdir demo
cd demo
composer require php-webdriver/webdriver

注意: 因为从 1.8.0 版本开始,该项目已更名 facebook/php-webdriver 为 php-webdriver/webdriver。为了兼容新版本和未来的更新,需要在 composer.json 中重命名它:

json 复制代码
"require": {
-    "facebook/webdriver": "(version you use)",
+    "php-webdriver/webdriver": "(version you use)",
}

然后运行:

sql 复制代码
composer update

测试案例

创建一个 test.php 文件,内容如下:

php 复制代码
<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Chrome\ChromeOptions;
require_once('./vendor/autoload.php');
$options = new ChromeOptions();
$options->addArguments(array('--no-sandbox','--disable-dev-shm-usage'));
$options->addArguments(array('--headless'));//无头模式,不会弹出浏览器窗口,没有安装图形界面的一定要设置这个
$options->setExperimentalOption('prefs', array('profile.managed_default_content_settings.images'=>2));//禁止加载图片
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
$host = 'http://127.0.0.1:4444';//selenium服务监听地址
$driver = RemoteWebDriver::create($host,$capabilities,5000);
$size = new WebDriverDimension(1920,1080);//窗口大小
$driver->manage()->window()->setSize($size);//设置窗口大小
$driver->get('https://www.baidu.com/s?wd=https://juejin.cn');
$result = $driver->findElement(WebDriverBy::cssSelector('#content_left>div[id="1"]'));
echo $result->getText();
$driver->quit();

运行查看结果:

php test.php
相关推荐
java_heartLake44 分钟前
微服务中间件之Nacos
后端·中间件·nacos·架构
GoFly开发者1 小时前
GoFly快速开发框架/Go语言封装的图像相似性比较插件使用说明
开发语言·后端·golang
苹果酱05672 小时前
通过springcloud gateway优雅的进行springcloud oauth2认证和权限控制
java·开发语言·spring boot·后端·中间件
空城皆是旧梦2 小时前
python爬虫初体验(二)
爬虫·python
豌豆花下猫2 小时前
Python 潮流周刊#70:微软 Excel 中的 Python 正式发布!(摘要)
后端·python·ai
芯冰乐3 小时前
综合时如何计算net delay?
后端·fpga开发
KookeeyLena84 小时前
如何限制任何爬虫爬取网站的图片
开发语言·c++·爬虫
B站计算机毕业设计超人4 小时前
计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习
大数据·hadoop·爬虫·机器学习·spark·知识图谱·推荐算法
用户673559885616 小时前
数据驱动,实时监控显威力 —— 淘宝商品详情API助力商家精准营销
后端·api·fastapi
lucifer3116 小时前
线程池与最佳实践
java·后端