首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]php使用webdriver获取百度页面源码

发布于 2024-12-08 21:29:23
0
120

用 WebDriver,您可以等待页面加载完成并获取完整的渲染后的页面内容,包括动态生成的内容。这意味着您可以采集到前后端分离网站上通过 JavaScript 或 AJAX 加载的数据。接下来让我自己...

用 WebDriver,您可以等待页面加载完成并获取完整的渲染后的页面内容,包括动态生成的内容。这意味着您可以采集到前后端分离网站上通过 JavaScript 或 AJAX 加载的数据。接下来让我自己动手写一个试试看。

安装浏览器chrome

  1. 下载 Chrome 浏览器的安装包:

    
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
    
  2. 安装 Chrome 浏览器:

    
    sudo yum localinstall google-chrome-stable_current_x86_64.rpm
    
  3. 验证 Chrome 是否成功安装:

    
    google-chrome --version
    
  4. 下载对应版本的 ChromeDriver,并解压到指定目录(例如 /usr/local/bin):

https://googlechromelabs.github.io/chrome-for-testing/ (各个版本的下载地址)


   wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip

   unzip chromedriver_linux64.zip -d /usr/local/bin/
  1. 启动 ChromeDriver 服务:

    
    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 进行采集可以提高效率、减少人工操作、处理动态内容,并且具有灵活性和可定制性。它是一个强大而受欢迎的工具,适用于各种网页采集和自动化任务。

评论
一个月内的热帖推荐
久久在线
Lv.1普通用户

551

帖子

21

小组

2050

积分

赞助商广告
站长交流