thinkphp5.1怎么实现多线程爬虫
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍了thinkphp5.1怎么实现多线程爬虫,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。创建一个cli命令php th
千家信息网最后更新 2025年02月23日thinkphp5.1怎么实现多线程爬虫
这篇文章主要介绍了thinkphp5.1怎么实现多线程爬虫,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创建一个cli命令
php think make:command Thread thread
测试能否成功执行
php think thread
安装Guzzle类库
文档地址:guzzle文档地址(https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html)
实现代码
setName('thread'); // 设置参数 } protected function execute(Input $input, Output $output) { $client = new Client(); $requests = function ($total) use ($client) { foreach (range(1, $total) as $r) { $uri = 'https://apinew.juejin.im/content_api/v1/short_msg/detail'; yield function () use ($client, $uri) { return $client->postAsync($uri, [ 'verify' => false, 'json' => [ 'msg_id' => '6845185452727599118' ] ]); }; } }; $pool = new Pool($client, $requests($this->totalPageCount), [ 'concurrency' => $this->threads, // 请求成功 'fulfilled' => function ($response, $index) use ($output) { $res = $response->getBody()->getContents(); $output->writeln($res); $output->writeln("正在执行第{$index}个·····"); if ($this->checkThreadIsEnd() == true) { $output->writeln("------------请求结束---------"); return false; } }, // 请求失败 'rejected' => function ($reason, $index) use ($output) { $output->writeln("执行失败,{$reason}"); }, ]); $promise = $pool->promise(); $promise->wait(); } /** * 检测任务是否结束 * @return bool */ private function checkThreadIsEnd() { if (self::$counter < $this->totalPageCount) { self::$counter++; return false; } else { return true; } }}
执行命令
php think thread
感谢你能够认真阅读完这篇文章,希望小编分享的"thinkphp5.1怎么实现多线程爬虫"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
篇文章
爬虫
线程
成功
命令
地址
文档
代码
价值
任务
兴趣
参数
同时
更多
朋友
正在
知识
编带
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河北直销软件开发销软件
网络安全小视频剧本
软件开发企业有证书吗
兰州3d相机软件开发
软件开发定制在哪里
挖才网络技术
西安 数据库工程师
选择数据库的语句
idc 软件开发
亚帝文软件开发
国家堆进网络安全
广州食蚁兽网络技术
揭阳通讯软件开发批发价格
网络安全设备的接法
清华大学 网络安全 郑波
保卫网络安全素材
通信与软件开发哪个好
教育数据库填写有什么用
计算软件开发的优点
传奇单机版服务器
用户需要了解数据库的结构
数据记录总数 数据库
长沙市乐邦网络技术有限公司
身份证号码数据库归哪个部门管
服务器怎么运输
阿里云服务器密钥密码在哪里
软件开发我为什么都配几个显示屏
mysql 重复的数据库
网络安全法与电子商务法解读
安康越桨网络技术有限公司