Este problema apareceu antes quando estava fazendo o buscador sem criar a classe, me foi instruído a instalar um novo pacote e desativar a verificação de certificado do site na criação do client e funcionou, porem agora quando fui fazer o código por classe começou a aparecer os mesmos erros e desabilitar a verificação não esta resolvendo mais.
nome do arquivo:composer.json
{
"name": "refri/buscar-cursos",
"description": "BuscarCursosAlura",
"type": "library",
"authors": [
{
"name": "Phelipe",
"email": "phelipeoliveira209@gmail.com"
}
],
"require": {
"guzzlehttp/guzzle": "^7.2",
"symfony/dom-crawler": "^4.2",
"symfony/css-selector": "^5.2"
}
}
nome do arquivo:BuscarCurso.php
<?php
require 'vendor/autoload.php';
require_once('C:\Users\pheli\OneDrive\Documentos\php\buscas\\BuscarCursos.php');
$client = new \GuzzleHttp\Client(['verify' => false],['base_uri'=>'https://cursos.alura.com.br/']);
$crawler = new \Symfony\Component\DomCrawler\Crawler();
$buscarCursos = new BuscarCursos($client,$crawler);
$cursos = $buscarCursos->buscar('/cursos-online-programacao/php');
foreach($cursos as $curso){
echo $curso . PHP_EOL;
}
?>
nome do arquivo:BuscarCursos.php
<?php
use GuzzleHttp\ClientInterface;
use Symfony\Component\DomCrawler\Crawler;
class BuscarCursos{
private $httpClient;
private $crawler;
public function __construct(ClientInterface $httpClient, Crawler $crawler){
$this->httpClient = $httpClient;
$this->crawler = $crawler;
}
public function buscar(string $url):array{
$resposta = $this->httpClient->request('GET', $url);
$html = $resposta->getBody();
$this->crawler->addHtmlContent($html);
$elementosCursos = $this->crawler->filter('span.card-curso__nome');
$cursos = [];
foreach($elementosCursos as $elemento){
$cursos[] = $elemento->textContent;
}
return $cursos;
}
}
?>