spatie/crawler
PHP web crawler that discovers links concurrently via Guzzle, with optional JavaScript rendering powered by Chrome/Puppeteer. Configure depth, internal-only rules, and callbacks for per-page handling, plus a fake mode to test crawl logic without real HTTP requests.
Full Changelog: https://github.com/spatie/crawler/compare/9.3.0...9.3.1
Full Changelog: https://github.com/spatie/crawler/compare/9.2.1...9.3.0
Full Changelog: https://github.com/spatie/crawler/compare/9.0.1...9.2.1
Full Changelog: https://github.com/spatie/crawler/compare/9.1.0...9.2.0
When the crawler reached its time limit, crawl limit, or was interrupted via a signal, any HTTP requests that were still in-flight in the Guzzle pool would eventually fail (e.g. due to their per-request timeout) and get reported to crawlFailed. These URLs were dispatched but never truly crawled, so reporting them as failures was misleading.
The CrawlRequestFailed handler now checks whether the crawler has reached its limits before reporting a failure. If it has, the failure is silently ignored.
Regular request failures (timeouts, connection errors, server errors) that happen during normal crawling are still reported as before.
Full Changelog: https://github.com/spatie/crawler/compare/8.5.0...9.0.0
Add Laravel 13 support
Full Changelog: https://github.com/spatie/crawler/compare/8.4.6...8.4.7
Full Changelog: https://github.com/spatie/crawler/compare/8.4.4...8.4.5
Full Changelog: https://github.com/spatie/crawler/compare/8.4.3...8.4.4
Full Changelog: https://github.com/spatie/crawler/compare/8.4.2...8.4.3
Full Changelog: https://github.com/spatie/crawler/compare/8.4.1...8.4.2
Full Changelog: https://github.com/spatie/crawler/compare/8.4.0...8.4.1
Full Changelog: https://github.com/spatie/crawler/compare/8.3.1...8.4.0
Full Changelog: https://github.com/spatie/crawler/compare/8.3.0...8.3.1
Full Changelog: https://github.com/spatie/crawler/compare/8.2.3...8.3.0
Full Changelog: https://github.com/spatie/crawler/compare/8.2.2...8.2.3
crawlFailed by @superpenguin612 in https://github.com/spatie/crawler/pull/469Full Changelog: https://github.com/spatie/crawler/compare/8.2.1...8.2.2
Full Changelog: https://github.com/spatie/crawler/compare/8.2.0...8.2.1
Full Changelog: https://github.com/spatie/crawler/compare/8.1.0...8.2.0
Full Changelog: https://github.com/spatie/crawler/compare/8.0.4...8.1.0
Full Changelog: https://github.com/spatie/crawler/compare/8.0.2...8.0.3
Full Changelog: https://github.com/spatie/crawler/compare/8.0.1...8.0.2
Full Changelog: https://github.com/spatie/crawler/compare/8.0.0...8.0.1
Full Changelog: https://github.com/spatie/crawler/compare/7.1.1...7.1.2
Full Changelog: https://github.com/spatie/crawler/compare/7.1.0...7.1.1
Full Changelog: https://github.com/spatie/crawler/compare/7.0.4...7.0.5
Full Changelog: https://github.com/spatie/crawler/compare/7.0.3...7.0.4
How can I help you explore Laravel packages today?