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

[Dúvida] Código não funciona.

<?php

require 'vendor/autoload.php';

use GuzzleHttp\Client;

use Symfony\Component\DomCrawler\Crawler;

$client = new Client(['verify' => false]);

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

$html = $resp->getBody();


$crawler = new Crawler();

$crawler->addHtmlContent($html);

$cursos = $crawler->filter('span.course-card__name');


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

Quando eu executo não aparece nada no prompt de comando.

2 respostas

Oi, William tentar trocar para $cursos = $crawler->filter('course-card__course-link'); a classe do site da Alura mudou, então, acredito que seja por isso que não está aparecendo nada. Espero ter ajudado, até mais.

solução!

Para quem estiver com o mesmo problema o codigo abaixo esta funcionando.

<?php


require 'vendor/autoload.php';

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

$client = new Client(['verify' => false]);
$resposta = $client->request('GET', 'https://www.alura.com.br/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;
}

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