1. Go to this page and download the library: Download katsana/dusk-crawler library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
katsana / dusk-crawler example snippets
use DuskCrawler\Dusk;
use DuskCrawler\Inspector;
use DuskCrawler\Exceptions\InspectionFailed;
use Laravel\Dusk\Browser;
function searchPackagist(string $packagist) {
$dusk = new Dusk('search-packagist');
$dusk->headless()->disableGpu()->noSandbox();
$dusk->userAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36');
$dusk->start();
$dusk->browse(function ($browser) use ($packagist) {
$browser->visit('https://packagist.org/');
$promise = $browser->type('search_query[query]', $packagist, '{enter}')
->inspectUsing(15, function (Browser $browser, Inspector $inspector) {
$searchList = $browser->resolver->findOrFail('.search-list');
if (! $searchList->isDisplayed() || $searchList->getText() == '') {
// result not ready, just return false.
return false;
}
if ($searchList->getText() == 'No packages found.') {
return $inspector->abort('No packages found!');
}
return $inspector->resolve();
});
$promise->then(function ($browser) {
// Crawl the page on success.
$packages = $browser->crawler()
->filter('div.package-item')->each(function ($div) {
return $div->text();
});
dump($packages);
})->otherwise(function (InspectionFailed $exception) {
// Handle abort state.
dump("No result");
})->done();
});
$dusk->stop();
}
searchPackagist('dusk-crawler');
Dusk::closeAll();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.