1
resposta

Estou com dúvida, meu código nao retorna nada.

<?php

require 'vendor/autoload.php';

use \GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

$client = new Client();
$response = $client->request('GET', 'https://www.alura.com.br/cursos-online-programacao/php');

$html = $response->getBody();

$crawler = new Crawler($html);

$cursos = $crawler->filter('span.card-curso__nome');

var_dump($cursos);

foreach($cursos as $curso)
{
    echo $curso->textContent . PHP_EOL;
}
1 resposta

Olá, Bruno! Tudo bem?

Pelo que pude analisar no seu código, parece que tudo está correto. No entanto, é importante lembrar que o método var_dump($cursos); não irá retornar os cursos em si, mas um objeto do tipo Symfony\Component\DomCrawler\Crawler.

Se você deseja ver os cursos, você precisa iterar sobre o objeto $cursos, como você já fez no foreach. No entanto, o var_dump($cursos); pode estar impedindo a visualização correta dos cursos.

Tente remover a linha var_dump($cursos); e execute o script novamente. Seu código ficaria assim:

<?php

require 'vendor/autoload.php';

use \GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;

$client = new Client();
$response = $client->request('GET', 'https://www.alura.com.br/cursos-online-programacao/php');

$html = $response->getBody();

$crawler = new Crawler($html);

$cursos = $crawler->filter('span.card-curso__nome');

foreach($cursos as $curso)
{
    echo $curso->textContent . PHP_EOL;
}

Se mesmo assim você não conseguir ver os cursos, verifique se a página 'https://www.alura.com.br/cursos-online-programacao/php' está acessível e se o seletor 'span.card-curso__nome' ainda é válido. Às vezes, as páginas da web podem ser atualizadas e os seletores podem mudar.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software