spekulatius/spatie-crawler-toolkit-for-laravel

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

0.5.0 2022-09-28 09:01 UTC

This package is auto-updated.

Last update: 2024-08-28 13:39:27 UTC


README

Laravel 9应该可以工作,但尚未进行广泛测试。请报告您可能遇到的问题!

Software License Total Downloads Awesome PHP crawler

一组类,用于与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许可证下发布。有关更多信息,请参阅许可证文件