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);