uocnv/spatie-crawler-toolkit-for-laravel

当与Laravel一起使用Spatie的爬虫时,提供便捷的类。

1.0 2022-06-28 09:17 UTC

This package is auto-updated.

Last update: 2024-09-17 11:03:17 UTC


README

PHP 8应该可以工作,但尚未进行全面测试。请报告您可能发现的任何问题!

Software License Total Downloads

一套用于在Laravel中使用Spatie的爬虫的类。目标是简化构建爬虫应用程序或将爬虫添加到现有Laravel项目中的操作。目前实现了以下辅助类

缓存爬取队列

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事件,使您能够对爬取事件做出反应。这包括以下事件

默认情况下,不会发出任何事件。要启用事件,您需要将事件观察器添加到爬虫中

$event_observer = new \Spekulatius\SpatieCrawlerToolkit\Observers\CrawlEvents;

Crawler::create()
    ->setCrawlObserver($event_observer)
    ->startCrawling($url);

可以将可选的标识符传递给爬取事件,以区分不同的爬取

$event_observer = new \Spekulatius\SpatieCrawlerToolkit\Observers\CrawlEvents('my-crawl');

计划功能

  • 使用Laravel队列批量爬取。

对于如何增强此功能的有任何建议,请提出问题。

要求 & 安装

要求

  • Laravel 6、7或8。
  • 在Laravel中配置缓存和日志。

安装

composer require spekulatius/spatie-crawler-toolkit-for-laravel

可选,您可以发布配置文件

php artisan vendor:publish --tag=crawler-toolkit-config

贡献

请提出PR或问题。

许可证

在MIT许可证下发布。有关更多信息,请参阅许可证文件