欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP CURL 同步/异步 并发 采摘 爬行

程序员文章站 2023-12-24 13:04:45
...
PHP CURL 同步/异步 并发 采集 爬行

在上一篇文章基础上对代码进行了整理,并合并进同步采集的方法

类中用到了另一个 Proxy代理类,请自行实现, 如果不需要使用代理,请去除相关代码

同步调用示意

$this->catcher=new LCatcher(10,20,false,true,true);

list($code,$content)=$this->catcher->get($url);

并发采集示意

$this->catch=new LCatcher(10,$asynNum,true);

$this->catch->pushJob($this,$url,9);


完整代码如下

/**
* 并发异步采集者
*/
class LCatcher {
//以下是需要配置的运行参数
public $timeout=10; //默认的超时设置 10 秒
public $useProxy=true; //是否使用代理服务器
public $concurrentNum=20; //并发数量
public $autoUserAgent=true; //是否自动更换UserAgent
public $autoFollow=false; //是否自动301/302跳转

/**
* 创建一个采集者
* @param number $timeout 超时
* @param number $concurrentNum 并发数
* @param string $useProxy 是否使用代理
*/
public function __construct($timeout=10,$concurrentNum=20,$useProxy=true,$autoFollow=false,$autoUserAgent=true){
$this->timeout=$timeout;
$this->concurrentNum=$concurrentNum;
$this->useProxy=$useProxy;
$this->autoFollow=$autoFollow;
$this->autoUserAgent=$autoUserAgent;
}

/**
* 串行采集
*
* @param unknown $url
* 要采集的地址
* @param string $must
* 是否肯定对方一定存在 (200,且有

上一篇:

下一篇: