在Debian 11上使用PHP和Google Chrome渲染网页内容并获取文本
在Debian GNU/Linux 11 x86_64上,你可以使用以下步骤在PHP中调用谷歌浏览器并使用proc_open函数渲染网页内容,并输出网页文本内容:
- 确保已经安装了谷歌浏览器(Google Chrome)。
- 确保PHP的
proc_open函数可用。你可以通过在PHP脚本中调用function_exists('proc_open')来检查。 - 设置环境变量
google-chrome,将其指向谷歌浏览器的可执行文件路径。你可以通过在终端中运行which google-chrome来找到谷歌浏览器的可执行文件路径,并将其添加到环境变量中。可以在/etc/environment文件中添加以下行:
google-chrome=/usr/bin/google-chrome
保存文件后,重新启动终端或重新登录以使更改生效。
4. 在PHP脚本中,使用`proc_open`函数来执行谷歌浏览器并渲染网页:
```php
<?php
$descriptorspec = array(
0 => array('pipe', 'r'), // 标准输入
1 => array('pipe', 'w'), // 标准输出
2 => array('pipe', 'w') // 标准错误输出
);
$process = proc_open('google-chrome --headless --disable-gpu --dump-dom http://example.com', $descriptorspec, $pipes);
if (is_resource($process)) {
$output = stream_get_contents($pipes[1]);
fclose($pipes[1]);
$errors = stream_get_contents($pipes[2]);
fclose($pipes[2]);
$returnValue = proc_close($process);
if ($returnValue === 0) {
echo $output; // 输出网页文本内容
} else {
echo '谷歌浏览器执行失败:' . $errors;
}
} else {
echo '无法打开谷歌浏览器进程';
}
?>
此脚本将以无头模式运行谷歌浏览器,并将网页内容输出到标准输出。你可以将http://example.com替换为你想要渲染的网页URL。
5. 运行PHP脚本,将输出的网页文本内容显示在终端或网页中。
请注意,使用proc_open函数执行外部命令可能存在安全风险。确保仅执行受信任的命令,并对用户提供的输入进行适当的验证和过滤。
原文地址: https://www.cveoy.top/t/topic/qky0 著作权归作者所有。请勿转载和采集!