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

Uncaught InvalidArgumentException: Attaching DOM nodes from multiple documents in the same crawler is forbidden

Boa tarde

Realizei o ajuste no require conforme solicitado nesta postagem do forum: https://cursos.alura.com.br/forum/topico-autoload-php-failed-to-open-stream-no-such-file-or-directory-in-c-xampp-htdocs-alura-composer-buscador-cursos-alura-buscar-cursos-php-on-line-3-335400

No entanto surgiu o seguinte erro (que não localizei neste fórum): Insira aqui a descrição dessa imagem para ajudar na acessibilidadeSegue meu código:

<?php 

require '../vendor/autoload.php';

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

$client = new Client();

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

$html = $resposta->getBody();

$crawler = new Crawler($html);

$crawler->addHtmlContent($html);

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

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


?>

Quando eu abro o arquivo Crawler ele apresenta 3 erros: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Peço ajuda pois estou há dias presa nesta aula sem conseguir progredir.. Gostaria de saber também se é por causa da minha estrutura de pastas (conforme abaixo), se devo começar do zero, etc

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Grata deste já.

2 respostas
solução!

Olá, Nelcilene!

Acho que o problema está porque você está definindo o html duas vezes:

$crawler = new Crawler($html);

$crawler->addHtmlContent($html);

Você precisa definir apenas 1 vez. Uma sugestão é fazer como é visto no curso:

$crawler = new Crawler();

$crawler->addHtmlContent($html);

Espero ter ajudado e bons estudos :)

Obrigada, as vezes a gente bate o olho e não vê.