PHPCreeper类


此类是生产器、下载器、解析器等组件的核心基类,以下列举的是其常用的API。

enableMultiWorkerMode ( boolean  $mode )  :  void


参数

@param    boolean   $mode    true:多worker运作模式,false:单worker运作模式

含义

1. 设置爬山虎的运作模式。
2. 单worker运作模式:限定只能编写若干特定的downloader实例,即可完成所有的爬虫需求,
   好处是开箱即用,不依赖redis服务,使用PHP内置队列,缺点是只能对付简单的爬虫需求。
3. 多worker运作模式:支持自由编写任意多个业务worker实例,这是爬山虎默认的运作模式。

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::enableMultiWorkerMode(true);

setLang ( string  $lang )  :  void


参数

@param    string   $lang    代表语言,取值:zh | en

含义

多语言运行时环境开关:暂支持中文和英文,默认是中文,暂时只支持中文和英文。

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::setLang('en');

setStdoutFile ( string  $file )  :  void


参数

@param    string   $file   目标文件 

含义

1. 设置将标准输出重定向到哪个目标文件。
2. 如果以守护进程方式运行,则所有向终端的输出(echo var_dump等)将会被重定向到指定的文件中。
3. 如果以守护进程方式运行并且不设置,则所有终端输出将被重定向到/dev/null,即丢弃所有输出。

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::setStdoutFile("/tmp/stdout.log");

setMasterPidFile ( string  $pid_file )  :  void


参数

@param    string   $pid_file   主进程PID文件 

含义

设置主进程PID文件

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::setMasterPidFile("master.pid");

setDefaultRedisClient ( string  $client )  :  void


参数

@param    string   $client   代表redis客户端,取值为:redis | predis

含义

设置默认的redis客户端,默认为predis,也可切换为基于ext-redis的redis。

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::setDefaultRedisClient('redis');

setDefaultTimezone ( string  $timezone )  :  void


参数

@param    string   $timezone   时区

含义

设置默认时区,默认为 Asia/Shanghai。

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::setDefaultTimezone('Asia/Shanghai');

setDefaultHeadlessBrowser ( string  $browser )  :  void


参数

@param    string   $browser   无头浏览器

含义

设置默认的无头浏览器,默认为 chrome,后续可能陆续支持 puppeteer 和 phantomjs。

举例

<?php
use PHPCreeper\PHPCreeper;
PHPCreeper::setDefaultHeadlessBrowser('chrome');

setLogFile ( string  $path, string  $worker = '' )  :  void


参数

@param    string   $path    日志文件路径,包含日志文件本身。
@param    string   $worker  指定worker,默认为空表示针对所有worker。

含义

设置特定worker的日志输出文件。

举例

<?php
PHPCreeper::setLogFile('/tmp/runtime.log');
PHPCreeper::setLogFile('/tmp/runtime.log', 'producer');
PHPCreeper::setLogFile('/tmp/runtime.log', 'downloader');
PHPCreeper::setLogFile('/tmp/runtime.log', 'parser');

disableLogLevel ( array  $level, string  $worker = '' )  :  void


参数

@param    array    $level   日志级别。
@param    string   $worker  指定worker,默认为空表示针对所有worker。

含义

禁用特定worker的日志级别以屏蔽相应日志内容的输出。

举例

<?php
PHPCreeper::disableLogLevel(['crazy','debug','info']);
PHPCreeper::disableLogLevel(['crazy','debug','info'], 'producer');
PHPCreeper::disableLogLevel(['crazy','debug','info', 'warn'], 'downloader');

setChildProcessStopTimeout ( int|float  $timeout = 2 )  :  void


参数

@param    int|float    $timeout   超时时间,单位是秒,默认值为2秒,最小支持0.001秒。

含义

如果在指定的 $timeout 超时时间内子进程没有正常退出,则强制杀死子进程,多用于慢业务场景。

举例

<?php
PHPCreeper::setChildProcessStopTimeout(5);
Free Web Hosting