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

Redirect Alura

Após executar o código, percebi que nao funcionou meu foreach, logo executei um var_dump() na variável $html que recebe um getBody() da requisição feita pelo Guzzle. Percebi que o elemento capturado não foi a listagem dos cursos e sim a página inicial da Alura, aquela de login. Copiei a URL e joguei em uma página anônima e tomei um redirect novamente para página principal. Como posso prosseguir? Segue abaixo meu código:

<?php

require 'vendor/autoload.php';

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

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

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

$html = $response->getBody()->getContents();

$crawler = new Crawler();
$crawler->addHtmlContent($html);
$cursos = $crawler->filter('li.card-list__item');

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

echo $response->getStatusCode();
2 respostas
solução!

Olá, Cristiano. Tudo bem?

A url que você está buscando os cursos é essa:

https://cursos.alura.com.br/category/programacao/php

Entretanto, essa url só pode ser acessada se você estiver logado na sua conta da Alura, ou seja, o Guzzle está tentando acessar esta página, e está sendo redirecionado para essa outra página:

https://cursos.alura.com.br/loginForm?urlAfterLogin=https://cursos.alura.com.br/category/programacao/php

Por isso não está retornando nada.

Para resolver isso, e continuar o curso, sugiro que você altere o link de onde você está buscando os cursos:

buscar-cursos.php

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

Espero ter ajudado =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓

Funcionou Vinicius, agradeço pela atenção!