revolution / salvager
WebCrawler build with Laravel Dusk and Symfony DomCrawler
Installs: 5 379
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 2
Open Issues: 0
Requires
- php: ^8.0
- laravel/dusk: ^6.0||^7.0
- symfony/dom-crawler: ^5.0||^6.0
Requires (Dev)
- mockery/mockery: ^1.3.1
- orchestra/testbench: ^6.0||^7.0
- phpunit/phpunit: ^9.0
README
WebCrawler.
Build with Laravel Dusk and Symfony DomCrawler.
Requirements
- PHP >= 8.0
- Latest Chrome. Linux, Mac, Windows.
Installation
composer require revolution/salvager
Laravel config(Option)
php artisan vendor:publish --provider="Revolution\Salvager\Providers\SalvagerServiceProvider"
Lumen, Laravel Zero
- ServiceProvider:
Revolution\Salvager\Providers\SalvagerServiceProvider::class,
- Facade:
Revolution\Salvager\Facades\Salvager::class,
Plain PHP Demo by Docker
git clone https://github.com/kawax/salvager.git salvager && cd $_
docker-compose run --rm composer install
docker-compose run --rm example google.php
//Show Google search results.
//Store screenshot at ./examples/screenshots/
Usage(Laravel)
You can use the Salvager
Facade anywhere. Controller, Command, Job...
use Laravel\Dusk\Browser; use Symfony\Component\DomCrawler\Crawler; use Revolution\Salvager\Facades\Salvager; class SalvagerController { public function __invoke() { Salvager::browse(function (Browser $browser) use (&$crawler) { $crawler = $browser->visit('https://www.google.com/') ->keys('input[name=q]', 'Laravel', '{enter}') ->screenshot('google-laravel') ->crawler(); }); /** * @var Crawler $crawler */ $crawler->filter('.r')->each(function (Crawler $node) { dump($node->filter('h3')->text()); dump($node->filter('a')->attr('href')); }); } }
https://github.com/kawax/salvager-project
Develop
docker-compose run --rm phpunit
LICENSE
MIT