如何组织许多抓取工具?

时间:2017-07-02 13:16:42

标签: laravel model-view-controller laravel-5

我使用Laravel构建一个小型统计服务。我抓取一些网站并从那里获取我的应用程序的统计数据。例如,我从YouTube和Twitter获得订阅者数量。

public function getYouTubeStats() {}
public function getTwitterStats() {}
public function getFacebookStats() {}
...

所以现在我有一个具有20或30个功能的控制器,每个爬虫都需要自己的功能,因为显然每个外部站点都不同。但我不认为这么大的控制器对未来的发展有好处。所以我的问题是如何组织这个?

我可以为每个爬虫制作一个自己的控制器。但我无法从主爬虫控制器中的其他控制器获取功能。例如,我需要 MainCrawler 控制器中来自 YouTubeController 的函数 getStats()。我不认为有这么简单的方法吗?

或者我应该为每项服务制作新模型吗?

$youtube = new YouTubeStat::getStats();
$twitter = new TwitterStat::getStats();

1 个答案:

答案 0 :(得分:0)

我有一个类似的项目,我为每个社交网络创建了一个Controller。

然后在您的MainCrawler上,您可以说$stats = (new YouTubeController)->getStats();

如果您的社交网络控制器中有类似功能,则应使用Trait