使用 WebDriver,您可以等待页面加载完成并获取完整的渲染后的页面内容,包括动态生成的内容。这意味着您可以采集到前后端分离网站上通过 JavaScript 或 AJAX 加载的数据。接下来让我自己动手写一个试试看。
安装浏览器chrome
1. 下载 Chrome 浏览器的安装包:
```bash
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
```
2. 安装 Chrome 浏览器:
```bash
sudo yum localinstall google-chrome-stable_current_x86_64.rpm
```
3. 验证 Chrome 是否成功安装:
```bash
google-chrome --version
```
4. 下载对应版本的 ChromeDriver,并解压到指定目录(例如 `/usr/local/bin`):
https://googlechromelabs.github.io/chrome-for-testing/ (各个版本的下载地址)
```bash
wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip
unzip chromedriver_linux64.zip -d /usr/local/bin/
```
5. 启动 ChromeDriver 服务:
```bash
LANGUAGE=ZH-CN.UTF-8 /usr/local/bin/chromedriver --port=9515
```
6.成功运行后,您应该会看到类似以下输出:
```
Starting ChromeDriver {version} on port 9515...
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
```
php代码执行
<?php require_once('vendor/autoload.php'); use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver\Chrome\ChromeOptions; $options = new ChromeOptions(); $options->addArguments(['--no-sandbox','--headless']); $capabilities = DesiredCapabilities::chrome(); $capabilities->setCapability(ChromeOptions::CAPABILITY, $options); $host = 'http://localhost:9555'; $driver = RemoteWebDriver::create($host, $capabilities); // 访问百度网站 $driver->get('https://www.baidu.com'); // 获取页面源代码 $pageSource = $driver->getPageSource(); echo $pageSource; // 关闭 WebDriver 会话 $driver->quit();
php使用webdriver做采集的好处
1. 自动化:WebDriver 可以模拟用户与浏览器的交互操作,如点击、输入文本、提交表单等。这使得您可以自动化执行各种网页操作,而无需手动进行。
2. 多浏览器支持:WebDriver 支持多种浏览器,包括 Chrome、Firefox、Safari 等。这意味着您可以在不同的浏览器上运行和测试您的采集脚本,以确保在不同环境下的兼容性。
3. 动态内容处理:许多网站使用 JavaScript 和 AJAX 技术来加载和更新内容。通过 WebDriver,您可以等待页面加载完成并获取完整的渲染后的页面内容,包括动态生成的内容。
4. 数据抽取:WebDriver 提供了丰富的方法和选择器来定位和提取页面中的元素。您可以使用这些功能来获取所需数据,并将其保存到文件或数据库中进行进一步处理。
5. 高度可定制化:WebDriver 允许您编写灵活且高度可定制化的采集脚本。您可以根据需要设置各种选项和参数,以适应不同网站和场景。
6. 跨平台支持:WebDriver 是一个跨平台的工具,可以在 Windows、Mac 和 Linux 等操作系统上运行。这使得它成为一个广泛适用的采集解决方案。
总的来说,使用 WebDriver 进行采集可以提高效率、减少人工操作、处理动态内容,并且具有灵活性和可定制性。它是一个强大而受欢迎的工具,适用于各种网页采集和自动化任务。