失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 讲解thinkphp5.1如何实现多线程爬虫

讲解thinkphp5.1如何实现多线程爬虫

时间:2023-12-11 21:34:15

相关推荐

讲解thinkphp5.1如何实现多线程爬虫

php框架|ThinkPHP

thinkphp5.1

php框架-ThinkPHP

下面thinkphp框架教学栏目将给大家讲解thinkphp5.1 利用cli命令行+Guzzle类库实现多线程爬虫,希望对需要的朋友有所帮助!

网站源码 erp,鸿蒙系统ubuntu内核,爬虫 机票信息,php编程全集,视觉seo标准lzw

自媒体小程序源码,ubuntu欢迎界面设置,tomcat获取控制台记录,.net 爬虫请求头,php插入mysql数据库乱码,seo运营小白lzw

创建一个cli命令

php think make:command Thread thread

测试能否成功执行

医学题库系统 源码 下载,ubuntu如何增加网关,爬虫文章 保留格式,php gabage,文本内容SEOlzw

php think thread

安装Guzzle类库

文档地址:guzzle文档地址(https://guzzle-cn.readthedocs.io/zh_CN/latest/quickstart.html)

实现代码

setName( hread); // 设置参数 } 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;} }, // 请求失败 ejected => function ($reason, $index) use ($output) {$output->writeln("执行失败,{$reason}"); }, ]); $promise = $pool->promise(); $promise->wait(); } /*** 检测任务是否结束* @return bool*/ private function checkThreadIsEnd() { if (self::$counter totalPageCount) { self::$counter++; return false; } else { return true; } }}

执行命令

php think thread

效果

如果觉得《讲解thinkphp5.1如何实现多线程爬虫》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。