php网站源码yii2,YII2网站采集 php-resque 、FriendsOfPHP/Goutte

1. 思路

(1)、确定采集网站->确定分类->确定分页->确定文章列表

(2)、将列表放入队列,确定队列处理函数(worker)

(3)、后台运行队列程序,当队列有内容的时候,就根据worker处理队列

2. 准备

(1)安装php-resque

详情:https://github.com/chrisboulton/php-resque

(2)安装 FriendsOfPHP/Goutte

详情:https://github.com/FriendsOfPHP/Goutte

(3)数据库 文章表(article)、采集表(gather)

3. 执行采集

(1)进入项目目录 cd /var/www/myYii

(2)查看队列程序(queue/run)有没有后台运行 pa aux |grey yi

(3)如果没有运行,则执行程序。QUEUE=* php yii queue/run &

(4)queue/run 会自动根据自定义处理类以及worker进行工作

( \Resque::enqueue('article_spider', 'console\models\ArticleJob',['category'=>$category,'url'=>$url,'className'=>$className,'publishTime'=>$publishTime]);)

4. 调用流程

(1) php yii queue/run

调用 console\controllers\QueueController 中 actionRun方法,程序会根据队列内容以及队列处理函数自动采集文章

(2) php yii article/run yiichina

调用 console\controllers\ArticleController 中的 actionRun 方法,根据 $name 参数调用对应的网站采集类,此处调用 YiichinaSpider.php

(3)YiichinaSpider类中

先初始化网站信息,然后确定所有的采集分页(实例处理可能不合理,具体方法可以自己根据网站分页进行制定),然后整理每页的文章列表,最后把他们放入队列

(4)当队列中出现内容的时候

后台运行的队列函数(queue/run)会自动根据自己设定的处理类,此处是(‘console\models\ArticleJob’),对队列中数据进行处理。该类中必须有perform方法,QUEUE默认调用它处理队列数据

(5)队列处理

在ArticleJob中,先获取队列数据,然后插入采集内容,插入article表,最后存放采集记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值