Olá, segui os passos do instrutor mas na hora de buscar os dados do site aparece o seguinte erro:
C:\Users\Usuario\Desktop\Alura\PHP-Composer\buscador-cursos-alura>php buscar-cursos.php
PHP Notice: Undefined property: Symfony\Component\DomCrawler\Crawler::$filter in C:\Users\Usuario\Desktop\Alura\PHP-Composer\buscador-cursos-alura\buscar-cursos.php on line 20
Notice: Undefined property: Symfony\Component\DomCrawler\Crawler::$filter in C:\Users\Usuario\Desktop\Alura\PHP-Composer\buscador-cursos-alura\buscar-cursos.php on line 20
PHP Warning: Invalid argument supplied for foreach() in C:\Users\Usuario\Desktop\Alura\PHP-Composer\buscador-cursos-alura\buscar-cursos.php on line 22
Warning: Invalid argument supplied for foreach() in C:\Users\Usuario\Desktop\Alura\PHP-Composer\buscador-cursos-alura\buscar-cursos.php on line 22
Segue o meu código: buscar-cursos.php
<?php
require_once 'vendor/autoload.php';
use GuzzleHttp\Client;
use Symfony\Component\DomCrawler\Crawler;
$client = new Client();
$resposta = $client->request('GET', 'https://www.alura.com.br/formacao-desenvolvedor-php');
//echo $resposta->getStatusCode().PHP_EOL;
//echo $resposta->getHeader('content-type')[0].PHP_EOL;
//echo $resposta->getBody().PHP_EOL;
$html = $resposta->getBody();
$crawler = new Crawler();
$crawler->addHtmlContent($html);
$cursos = $crawler->filter{'span class="card-curso__nome"'};
foreach ($cursos as $curso) {
echo $curso->textContent.PHP_EOL;
}
composer.json
{
"name": "starkiller42/buscador-cursos",
"description": "Projeto que busca os cursos no site da Alura",
"type": "library",
"authors": [
{
"name": "Lucas dos Santos",
"email": "luc_ssoares@outlook.com"
}
],
"require": {
"guzzlehttp/guzzle": "^6.3",
"symfony/dom-crawler": "^4.2",
"symfony/css-selector": "^4.3",
"psr/log": "^1.1"
}
}
Vi que no site https://packagist.org/packages/guzzlehttp/guzzle ele estava sugerindo o psr/log em vez do symfony/css-selector mas mesmo fazendo o require do psr/log não funcionou.