public function iniciar($busca, $limite, $categoria)
 {
     $contador = 0;
     //Tratamento do termo de busca
     $busca = self::retirarAcentos($busca);
     $this->log = new \Log(self::LOG_FILE);
     $this->log->registrar("Iniciando...");
     $this->client = new Client();
     self::$URL = "http://www.americanas.com.br";
     $this->adicionaLink(empty($categoria) ? "http://www.americanas.com.br" : $categoria);
     $resultados = array();
     while ($this->getTotalLinksPendentes()) {
         try {
             $link = $this->getProximoLinkPendente();
             $this->log->registrar("Abrindo: {$link}");
             $crawler = $this->client->request('GET', $link);
             if (!$crawler) {
                 //Pula para a próxima
                 $this->log->registrar("Link não aberto: {$Link}");
                 continue;
             }
             $this->linksProcessados[] = $link;
             if ($totalLinks = $this->procurarLinks($crawler)) {
                 $this->log->registrar("Links encontrados: {$totalLinks}");
             }
             try {
                 $titulo = trim($crawler->filter('.mp-tit-name')->text());
                 $valorDe = trim($crawler->filter('.mp-pb-from')->text());
                 $valorAte = trim($crawler->filter('.mp-pb-to')->text());
                 $imagens = $crawler->filter('.sz')->each(function ($node) {
                     return $node->attr("src");
                 });
                 if (isset($titulo) and isset($valorDe) and isset($valorAte) and strripos(self::retirarAcentos($titulo), $busca) !== false) {
                     $resultados[] = array("titulo" => $titulo, "de" => $valorDe, "por" => $valorAte, "link" => $link, "imagens" => $imagens);
                     $contador++;
                     if ($contador == $limite) {
                         return $resultados;
                     }
                 }
             } catch (Exception $e) {
                 $this->log->registrar($e->getMessage());
             }
             $this->log->registrar("Status da fila: " . $this->getTotalLinksPendentes());
         } catch (Exception $e) {
             $this->log->registrar("Erro : " . $e->getMessage());
         }
     }
 }
<?php

require_once "vendor/autoload.php";
$exemplo3 = new \Exemplo3();
//$_GET['busca'] = "Arvore";
//$_GET['limite'] = 1;
if (isset($_GET['busca']) and isset($_GET['limite']) and isset($_GET['categoria'])) {
    $busca = $_GET['busca'];
    $limite = $_GET['limite'];
    $categoria = $_GET['categoria'];
    $resultados = $exemplo3->iniciar($busca, $limite, $categoria);
}
$categorias = array('http://www.americanas.com.br/linha/350392/celulares-e-telefones/smartphone' => 'Smartphones', 'http://www.americanas.com.br/linha/267868/informatica/notebook' => 'Notebooks', 'http://www.americanas.com.br/linha/339090/informatica/impressora' => 'Impressoras', 'http://www.americanas.com.br/linha/262909/tv-e-home-theater/tv' => 'TVs', 'http://www.americanas.com.br/loja/256408/audio' => 'Áudio', 'http://www.americanas.com.br/loja/228310/livros' => 'Livros');
include "views/exemplo3.php";