Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não aparece nenhum retorno no terminal

Meu código não está apresentando retorno no terminal mesmo seguindo os passos. Já li a documentação e não consegui resolver o erro.

<?php
require "vendor\autoload.php";

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


$client     = new Client([
    'base_uri' => 'https://cursos.alura.com.br/category/programacao/php/',
    'verify' => false
]);

$resposta   = $client->request('GET', 'https://cursos.alura.com.br/category/programacao/php');

$html       = $resposta->getBody();

$crawler    = new Crawler();
$crawler->addHtmlContent($html);
$cursos  = $crawler->filter("span.course-card__name");

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

Alguem para ajudar ?

solução!

Boa noite meu amigo,

Espero ajudar, vamos lá

No link que você está buscando (https://cursos.alura.com.br/category/programacao/php) não há o elemento span.course-card__name então o Crawler não vai conseguir buscar nada.

Tenta o seguinte código:

<?php
require "vendor\autoload.php";

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


$client     = new Client([
    'base_uri' => 'https://alura.com.br/',
    'verify' => false
]);

$resposta   = $client->request('GET', 'cursos-online-programacao/php');

$html       = $resposta->getBody();

$crawler    = new Crawler();
$crawler->addHtmlContent($html);
$cursos  = $crawler->filter("span.card-curso__nome");

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

Seu código está correto, porem a Url e o elemento que estavam sendo buscados não existiam, espero ter ajudado