spatie/crawler
PHP web crawler with concurrent requests via Guzzle. Crawl internal/external links, limit depth, and collect discovered URLs. Supports JavaScript-rendered sites using Chrome/Puppeteer. Includes faking responses for testing crawl logic without real HTTP calls.
Full Changelog: https://github.com/spatie/crawler/compare/9.3.1...9.3.2
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?