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如何实现多线程爬虫》对你有帮助,请点赞、收藏,并留下你的观点哦!