Olá!
Estou testando agora com a classe Buscador r não tenho resultado, verifiquei com var_dump() e o resultado foi array(0) {}.
buscar-cursos.php
<?php
require 'vendor/autoload.php';
require 'src/Buscador.php';
use Alura\BuscardorDeCursos\Buscador;
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;
$client = new Client([
'base_uri' => 'https://cursos.alura.com.br/',
'verify' => false
]);
$crawler = new Crawler();
$buscador = new Buscador($client, $crawler);
$cursos = $buscador->buscar('/category/programacao/php');
var_dump($cursos);
foreach($cursos as $curso) {
echo $curso . PHP_EOL;
}
buscador.php
<?php
namespace Alura\BuscardorDeCursos;
use GuzzleHttp\ClientInterface;
use Symfony\Component\DomCrawler\Crawler;
class Buscador
{
private ClientInterface $httpClient;
private Crawler $crawler;
public function __construct($httpClient, $crawler)
{
$this->httpClient = $httpClient;
$this->crawler = $crawler;
}
public function buscar(string $url) : array
{
$resposta = $this->httpClient->request('GET', $url);
$html = $resposta->getBody()->getContents();
$this->crawler->addHtmlContent($html);
$elementosCursos = $this->crawler->filter('span.card-curso__nome');
$cursos = [];
foreach($elementosCursos as $elemento) {
$cursos[] = $elemento->textContent;
}
return $cursos;
}
}