什么是爬虫?
爬虫是一种按照一定的规则,自动地抓取网上数据的程序或脚本
爬虫之前的准备?
根据初始页面,制定规则获取更多的需要爬取的页面
根据页面内容制定规则,爬取想要的东西
用到的组件及框架
EasySwoole框架
Redis连接池组件
协程HTTPClient组件
QueryList规则采集工具
根据页面内容制定规则
// 开始生产,根据内容,设置规则libxml_use_internal_errors(true);$ql = QueryList::html($body);//获取当前页面所有的图片$rules = [ 'src' => ['.list ul img', 'src'], 'alt' => ['.list ul img', 'alt'],];//获取下个页面要爬取的地址链接$nextUrl = $ql->find('.page .prev')->eq(1)->attr('href');$imgList = $ql->rules($rules)->encoding('UTF-8','GB2312')->query()->getData()->all();
然后分别入队列
foreach ($imgList as $img){ RedisQueue::getInstance()->push(CONSUME,$img);}//要爬取的页数,没有则停止生产if(empty($nextUrl)){ \co::sleep(1); continue;}Logger::getInstance()->console($nextUrl);//页面中的爬取链接不带host,要拼接上RedisQueue::getInstance()->push(QueueName,'http://www.netbian.com'.$nextUrl);\co::sleep(0.5);
其次就可以看到效果图了
爬取了大概三千多张图片,用时几分钟,本爬虫框架仅供学习参考,切不可以用于非法用途