1.环境

  • php 7.4 php 关闭putenv函数
  • opencloudos 系统
  • node 16.15.1
  • 谷歌浏览器

2.进入项目跟目录

2.1 composer安装 querylist https://querylist.cc/v4/guide/quick-look.html

composer require jaeger/querylist

2.2 composer安装 querylist-puppeteer https://querylist.cc/v4/guide/Puppeteer.html

composer require jaeger/querylist-puppeteer

2.3 安装Node依赖(与composer一样在项目根目录下执行)

2.31 可以使用宝塔的node.js 版本管理工具安装nodejs版本

# 安装yarn
npm install -g yarn
# 设置阿里镜像
npm config set registry https://mirrors.cloud.tencent.com/npm/
# 安装Node依赖
yarn add @nesk/puphpeteer

2.4 安装谷歌浏览器

 wget http://dist.control.lth.se/public/CentOS-7/x86_64/google.x86_64/google-chrome-stable-124.0.6367.118-1.x86_64.rpm
 yum install google-chrome-stable-124.0.6367.118-1.x86_64.rpm 

2.5 2.5 使用示例

use QL\Ext\Chrome;
use QL\QueryList;

$url="https://www.neobund.com/detail/3996";
$ql = QueryList::getInstance();
// 注册插件,默认注册的方法名为: chrome
$ql->use(Chrome::class);
$html = $ql->chrome(function ($page,$browser) use($url) {
    $page->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36');
    // 设置cookie
    $page->goto($url);
    // 等待元素出现
    $page->waitFor('//*[@id="__layout"]/div/div[2]/div[2]/div[3]/div');
    // 滚动到页面底部
    $page->evaluate('window.scrollTo(0, 1000)');
    // 等待一些操作,如加载内容 等待2秒
    $page->waitFor(2000);
    //找到元素并判断它是否存在
    $cl = $page->querySelectorXPath('//*[@id="ship-tp"]');
    if(!empty($cl)){
        $page->click('#ship-tp');//点击元素
    }
    // 获取页面HTML内容
    $html = $page->content();
    // 关闭浏览器
    $browser->close();
    // 返回值一定要是页面的HTML内容
    return $html;
   //,['args'=>['--no-sandbox']] linux 环境驱动浏览器需要
},['args'=>['--no-sandbox']])->find('.tab-content')->html();
print_r($html);

大概就这样,不明白的可以去看官方教程:https://querylist.1team.top/v4/guide/integration.html

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐