Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Php Crawler

Php Crawler Laravel Package

acassan/php-crawler

Symfony 2 bundle integrating the PHPCrawler library to help you crawl and fetch web pages within your Symfony application. Provides a simple way to run crawling tasks and process discovered URLs and content.

View on GitHub
Deep Wiki
Context7

Symfony 2 PHPCrawler

Frequently asked questions about Php Crawler
Can I use **acassan/php-crawler** directly in Laravel without Symfony 2?
No, this package is a Symfony 2 bundle and won’t work natively in Laravel. You’d need to create a custom Laravel service provider wrapper or use standalone Symfony components (e.g., `symfony/dom-crawler` + `guzzlehttp/guzzle`) for compatibility. Direct integration requires abstracting Symfony dependencies like `HttpKernel`.
What’s the easiest way to crawl websites in Laravel without Symfony?
For Laravel, consider modern alternatives like `spatie/fork` (for distributed crawling) or `laravel-web-scraper` (built for Laravel). These avoid Symfony dependencies entirely and offer better long-term support. If you need DOM parsing, pair `guzzlehttp/guzzle` with `symfony/dom-crawler` for a lightweight solution.
Does **acassan/php-crawler** support JavaScript-rendered pages (SPAs) or dynamic content?
No, this package uses PHP’s native HTTP requests and lacks headless browser automation. For JavaScript-heavy sites, use tools like `puppeteer` (via `spatie/laravel-browser-kit`) or `playwright` instead. These require Node.js but handle modern web scraping reliably.
How do I install this bundle in Laravel if it’s Symfony 2-only?
You can’t install it directly. Instead, create a Laravel service provider to expose its services or replace it with standalone components. For example, add `symfony/dom-crawler` and `guzzlehttp/guzzle` to `composer.json`, then build a facade to mimic the bundle’s API. Avoid bundling Symfony 2 dependencies in production.
Is **acassan/php-crawler** still maintained or safe for production?
This package is **not actively maintained** and ties you to **Symfony 2**, which reached end-of-life in 2023. Use it only for legacy projects or as a learning tool. For production, prioritize modern Laravel packages with active development (e.g., `spatie/fork` or `laravel-web-scraper`).
Can I use this for large-scale crawling (e.g., thousands of URLs) in Laravel?
No, this bundle lacks optimizations for scale (e.g., rate limiting, proxy rotation, or distributed workers). For large crawls, use Laravel queues with `spatie/fork` or a microservice architecture. Test alternatives like `scrapinghub/scrapy` (Python) or `puppeteer-cluster` for better performance.
How do I configure **acassan/php-crawler** to process discovered links?
The bundle uses Symfony’s configuration system (YAML/XML) to define crawl rules and link processors. In Laravel, you’d need to replicate this logic via a service provider or facade. Hook into the `PHPCrawlerBundle` events (e.g., `onLinkFound`) and map them to Laravel’s event system or job queues.
What Laravel packages are better alternatives for web scraping?
For Laravel, evaluate these modern alternatives: `spatie/fork` (distributed crawling), `laravel-web-scraper` (simple scraping), or `spatie/laravel-browser-kit` (JavaScript rendering). For DOM parsing, `symfony/dom-crawler` works standalone. Avoid Symfony 2 bundles—they introduce unnecessary complexity.
Will this bundle work with Laravel 9/10 and PHP 8.1+?
No, this bundle requires **Symfony 2** and older PHP versions. Laravel 9/10 drops Symfony 2 compatibility entirely. Use standalone components (e.g., `symfony/dom-crawler` v6+) or Laravel-native packages. Test thoroughly—some Symfony components may have breaking changes in newer PHP versions.
How do I test crawling logic in Laravel before deploying to production?
Mock HTTP requests with Laravel’s `Http` facade or `Mockery` to test crawler logic. For integration tests, use `spatie/laravel-testing-tools` to simulate crawls against a staging environment. Validate edge cases like redirects, 404s, and JavaScript-heavy pages with tools like `laravel-web-scraper`’s built-in testing helpers.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
apiboxsym/user-bundle
apiboxsym/health-check-bundle
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui