You can find all links using
DOM Crawler
and PHP by making use of either the
filter
or the filterXPath
method
. Below, you can find two code samples that demonstrate how to use either of these methods. The code uses
Guzzle
to load the
ScrapingBee website
so you may want to install that as well using Composer.
This example code uses the filter
method:
use Symfony\Component\DomCrawler\Crawler;
use GuzzleHttp\Client;
// Create a client to make the HTTP request
$client = new \GuzzleHttp\Client();
$response = $client->get('https://www.scrapingbee.com/');
$html = (string) $response->getBody();
// Load the HTML document
$crawler = new Crawler($html);
// Find all links on the page
$links = $crawler->filter('a');
// Loop over the links and print their href attributes
foreach ($links as $link) {
echo $link->getAttribute('href') . PHP_EOL;
}
// Output:
// /
// https://app.scrapingbee.com/account/login
// https://app.scrapingbee.com/account/register
// /#pricing
// /#faq
// /blog/
// #
// /features/screenshot/
// /features/google/
// ...
This example code uses filterXPath
method:
use Symfony\Component\DomCrawler\Crawler;
use GuzzleHttp\Client;
// Create a client to make the HTTP request
$client = new \GuzzleHttp\Client();
$response = $client->get('https://www.scrapingbee.com/');
$html = (string) $response->getBody();
// Load the HTML document
$crawler = new Crawler($html);
// Find all links on the page
$links = $crawler->filterXPath('//a');
// Loop over the links and print their href attributes
foreach ($links as $link) {
echo $link->getAttribute('href') . PHP_EOL;
}
// Output:
// /
// https://app.scrapingbee.com/account/login
// https://app.scrapingbee.com/account/register
// /#pricing
// /#faq
// /blog/
// #
// /features/screenshot/
// /features/google/
// ...