spekulatius / spatie-crawler-toolkit-for-laravel
当与Laravel一起使用Spatie的爬虫时,提供便捷类。
0.5.0
2022-09-28 09:01 UTC
Requires
- php: ^7.2|^8.0
- laravel/framework: ^8.0|^9.0
- spatie/crawler: ^7.0
Requires (Dev)
- symfony/thanks: ^1.2
README
Laravel 9应该可以工作,但尚未进行广泛测试。请报告您可能遇到的问题!
一组类,用于与Laravel一起使用Spatie的爬虫。目标是简化构建爬虫应用程序或向现有Laravel项目添加爬虫。它可以方便地集成到PHP Scraper中,例如。目前实现了以下辅助类
缓存爬取队列
CacheCrawlQueue 允许使用Laravel中预配置的Cache来存储队列。它将队列上执行的所有操作直接存储,以避免手动存储队列的需要。您可以将其直接添加到您的爬虫中
Crawler::create() ->setCrawlQueue(new \Spekulatius\SpatieCrawlerToolkit\Queues\CacheCrawlQueue($url)) ->startCrawling($url);
使用此功能,您可以随时停止爬取并重新开始。这需要在您的 .env
文件中配置缓存驱动程序。
爬取记录器
Crawl Logger 是一个观察者,您可以将其添加到您的爬虫中,以启用爬取事件的记录
Crawler::create() ->setCrawlObserver(new \Spekulatius\SpatieCrawlerToolkit\Observers\CrawlLogger) ->startCrawling($url);
您可以将配置(见下文)导出以调整要记录的事件。
爬取事件
此工具包包含一个观察者,用于发送Laravel事件,允许您对爬取事件做出反应。这包括以下事件
默认情况下,不发出任何事件。要启用事件,您需要将事件观察者添加到您的爬虫中
$eventObserver = new \Spekulatius\SpatieCrawlerToolkit\Observers\CrawlEvents; Crawler::create() ->setCrawlObserver($eventObserver) ->startCrawling($url);
可以将可选标识符传递给爬取事件,以区分不同的爬取
$eventObserver = new \Spekulatius\SpatieCrawlerToolkit\Observers\CrawlEvents('my-crawl');
计划功能
- 使用Laravel队列进行批量爬取。
对于任何增强建议,请提出问题。
要求 & 安装
要求
- Laravel 6, 7, 8, 9。Laravel 9仍在测试中。请报告任何问题。
- 在Laravel中配置缓存和日志。
安装
composer require spekulatius/spatie-crawler-toolkit-for-laravel
可选地,您可以发布配置文件
php artisan vendor:publish --tag=crawler-toolkit-config
贡献
请提出PR或问题。
许可证
在MIT许可证下发布。有关更多信息,请参阅许可证文件。