PHPackages                             broadteam/querylist-puppeteer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. broadteam/querylist-puppeteer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

broadteam/querylist-puppeteer
=============================

QueryList Plugin: Use Puppeteer to crawl Javascript dynamically rendered pages.(Headless Chrome ) 使用Puppeteer采集JavaScript动态渲染的页面

v1.0.0(2y ago)08MITPHPPHP &gt;=7.1.0

Since Jul 12Pushed 2y agoCompare

[ Source](https://github.com/broadteam/querylist-puppeteer)[ Packagist](https://packagist.org/packages/broadteam/querylist-puppeteer)[ RSS](/packages/broadteam-querylist-puppeteer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

QueryList-Puppeteer
===================

[](#querylist-puppeteer)

QueryList插件: 使用Puppeteer采集JavaScript动态渲染的页面。使用此插件需要有一定的Node.js基础知识，并且会配置Node运行环境。

此插件是基于`PuPHPeteer`包的简单封装，支持使用Puppeteer所有的API，非常强大!

> PuPHPeteer:
>
> Puppeteer:
>
> QueryList:

环境要求
----

[](#环境要求)

- PHP &gt;= 7.1
- Node &gt;= 8

安装
--

[](#安装)

安装插件

```
composer require jaeger/querylist-puppeteer

```

安装Node依赖（与composer一样在项目根目录下执行）

```
npm install @nesk/puphpeteer

```

插件注册选项
------

[](#插件注册选项)

QueryList::use(Chrome::class,$opt1)

- **$opt1**: 设置`chrome`函数别名

API
---

[](#api)

- chrome($url, $options = \[\]) 使用Chrome打开链接，返回值为设置好HTML的QueryList对象

用法
--

[](#用法)

在QueryList中注册插件

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

$ql = QueryList::getInstance();
// 注册插件，默认注册的方法名为: chrome
$ql->use(Chrome::class);
// 或者自定义注册的方法名
$ql->use(Chrome::class,'chrome');
```

基本用法

```
// 抓取的目标页面是使用Vue.js动态渲染的页面
$text = $ql->chrome('https://www.iviewui.com/components/button')->find('h1')->text();
print_r($text);
// 输出: Button 按钮
```

```
$rules = [
 'h1' => ['h1','text']
];
$ql = $ql->chrome('https://www.iviewui.com/components/button');
$data = $ql->rules($rules)->queryData();
```

设置Puppeteer launch选项,选项文档：

```
$text = $ql->chrome('https://www.iviewui.com/components/button',[
  'timeout' => 6000,
  'ignoreHTTPSErrors' => true,
  // ...
])->find('h1')->text();
```

更高级的用法,查看Puppeteer文档了解全部API:

```
$text = $ql->chrome(function ($page,$browser) {
    $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->setCookie([
      'name' => 'foo',
      'value' => 'xxx',
      'url' => 'https://www.iviewui.com'
    ],[
       'name' => 'foo2',
       'value' => 'yyy',
       'url' => 'https://www.iviewui.com'
    ]);
    $page->goto('https://www.iviewui.com/components/button');
    // 等待h1元素出现
    $page->waitFor('h1');
    // 获取页面HTML内容
    $html = $page->content();
    // 关闭浏览器
    $browser->close();
    // 返回值一定要是页面的HTML内容
    return $html;
})->find('h1')->text();
```

调试
--

[](#调试)

调试有很多种方法，下面演示通过页面截图和启动可视化Chrome浏览器来了解页面加载情况

### 页面截图

[](#页面截图)

运行下面代码后可以在项目根目录下看到`page.png`截图文件。

```
$text = $ql->chrome(function ($page,$browser) {
    $page->goto('https://www.iviewui.com/components/button');
    // 页面截图
    $page->screenshot([
        'path' => 'page.png',
        'fullPage' => true
    ]);
    $html = $page->content();
    $browser->close();
    return $html;
})->find('h1')->text();
```

#### 启动可视化Chrome浏览器

[](#启动可视化chrome浏览器)

运行下面代码后会启动一个Chrome浏览器。

```
$text = $ql->chrome(function ($page,$browser) {
    $page->goto('https://www.iviewui.com/components/button');
    $html = $page->content();
    // 这里故意设置一个很长的延长时间，让你可以看到chrome浏览器的启动
    sleep(10000000);
    $browser->close();
    // 返回值一定要是页面的HTML内容
    return $html;
},[
 'headless' => false, // 启动可视化Chrome浏览器,方便调试
 'devtools' => true, // 打开浏览器的开发者工具
])->find('h1')->text();
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 71.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1033d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7db77359a5c625d8d2a51b31be5f9b3033418f47feb7e82b1639d7b019d567b9?d=identicon)[broadteam](/maintainers/broadteam)

---

Top Contributors

[![broadteam](https://avatars.githubusercontent.com/u/19553037?v=4)](https://github.com/broadteam "broadteam (5 commits)")[![hi-noikiy](https://avatars.githubusercontent.com/u/32630320?v=4)](https://github.com/hi-noikiy "hi-noikiy (2 commits)")

### Embed Badge

![Health badge](/badges/broadteam-querylist-puppeteer/health.svg)

```
[![Health](https://phpackages.com/badges/broadteam-querylist-puppeteer/health.svg)](https://phpackages.com/packages/broadteam-querylist-puppeteer)
```

###  Alternatives

[ishanvyas22/asset-mix

Asset Mix plugin for CakePHP

3375.4k2](/packages/ishanvyas22-asset-mix)[prgayman/laravel-zatca

Laravel package a helper to Generate the QR code and signed it for ZATCA E-invoicing

2926.9k1](/packages/prgayman-laravel-zatca)[ducks-project/spl-types

Polyfill Module for SplType PHP extension. This extension aims at helping people making PHP a stronger typed language and can be a good alternative to scalar type hinting. It provides different typehandling classes as such as integer, float, bool, enum and string

1032.4k](/packages/ducks-project-spl-types)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
