You can find HTML elements by multiple tags with
DOM Crawler
by pairing the
filter
method
with a
CSS selector
that includes multiple tag names separated by commas. Here's an example that loads
ScrapingBee's homepage
using
Guzzle
and then prints the text of all h1
and h2
tags using Dom Crawler:
use Symfony\Component\DomCrawler\Crawler;
use GuzzleHttp\Client;
// Create a client to make the HTTP request
$client = new \GuzzleHttp\Client();
$response = $client->get('https://scrapingbee.com/');
$html = (string) $response->getBody();
// Load the HTML document
$crawler = new Crawler($html);
// Find all h1 and h2 headings on the page
$headings = $crawler->filter('h1, h2');
// Loop over the headings and print their text content
foreach ($headings as $element) {
echo $element->textContent . PHP_EOL;
}
// Output:
// Tired of getting blocked while scraping the web?
// Render your web page as if it were a real browser.
// Render JavaScript to scrape any website.
// Rotate proxies to bypass rate limiting.
// Simple, transparent pricing.
// Developers are asking...
// Who are we?
// Contact us
// Ready to get started?