【发布时间】:2013-02-19 20:41:32
【问题描述】:
我正在使用 Laravel 3 制作一个网络爬虫,并且有一个队列系统 resque。
问题:我应该将抓取逻辑代码放在哪里?
在工人/工作类别中?
在由 worker/job 类静态调用的库类中?
在控制器函数中并让工作者/作业类触发控制器函数?
我目前在控制器函数中有它,所以我可以通过访问它的 url 来测试它。这也允许使用 Cron 重复作业,因为 resque 不允许重复作业。我仍然需要保留这种简单的方法来测试抓取功能。
尝试:这是我的想法,你将如何组织你的代码来实现这样的目的?
工人阶级
class ScraperWorker
{
public function perform()
{
$url = $this->args['url']
Scraper::do_scrape($url);
}
}
抓取类
class Scraper
{
public static function do_scrape($url) {
//some scraping code
}
}
控制器类
用于快速测试和 Cron 作业命中
class Scraper_Controller extends Base_Controller {
public function test_scrape($url) {
Scraper::do_scrape($url);
}
}
【问题讨论】:
标签: php web-scraping screen-scraping laravel resque