Um web crawler, também conhecido como spider ou bot, é um script ou programa que navega na web de forma sistemática e automática. Eles são usados principalmente pelos mecanismos de pesquisa para indexar páginas da web, mas também podem ser usados para uma variedade de outras tarefas, como monitoramento de preços em sites de ecommerce, coletar e-mails para fins de marketing, entre outros. O processo de rastreamento é relativamente simples, mas requer uma compreensão sólida dos protocolos web e dos formatos de dados. Em termos gerais, o web crawler começa com uma lista de URLs para visitar, chamada de seeds. Em seguida, o crawler visita esses URLs, analisa o conteúdo das páginas e extrai todos os links nessas páginas, adicionando-os à sua lista de URLs a visitar. Isso continua indefinidamente, até que todas as páginas tenham sido visitadas ou algum outro critério de parada tenha sido atendido. Agora que temos uma ideia do que é um web crawler e como ele funciona, vamos a um exemplo prático em PHP. Neste exemplo, criaremos um web crawler simples que acessará o site https://www.codexpress.com.br e retornará os valores de meta de title, description e keywords da página. Importante: Ao criar web crawlers, é importante respeitar as regras de robots.txt de um site e não sobrecarregar o servidor do site com solicitações. Além disso, lembre-se que scraping pode ser contra os termos de serviço de alguns sites. O script abaixo inicia fazendo uma requisição GET à URL especificada usando a biblioteca cURL do PHP. A resposta é então carregada em um objeto DOMDocument, que nos permite manipular o HTML e extrair as informações necessárias. O DOMDocument percorre todas as tags de meta na página. Ele verifica se a tag de meta é para 'description' ou 'keywords', e se for, ele extrai o valor da tag. Esses valores são então impressos na saída. Espero que este artigo tenha ajudado a entender o que são web crawlers e como eles funcionam. Lembre-se, é importante usar essas ferramentas de maneira ética e legal.
<?php // Inicia a biblioteca cURL $ch = curl_init(); // Define a URL para fazer a requisição curl_setopt($ch, CURLOPT_URL, "https://www.codexpress.com.br"); // Habilita a opção para retornar a resposta curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Executa a requisição e armazena a resposta $response = curl_exec($ch); // Fecha a conexão curl_close($ch); // Verifica se a requisição foi bem-sucedida if ($response !== FALSE) { // Cria um DOMDocument para manipular o HTML $dom = new DOMDocument(); // Carrega o HTML na instância de DOMDocument. O '@' é usado para suprimir erros de parsing @$dom->loadHTML($response); // Obtém o elemento title $title = $dom->getElementsByTagName('title')->item(0)->nodeValue; // Obtém os meta tags $metas = $dom->getElementsByTagName('meta'); $description = ""; $keywords = ""; // Loop para obter a description e keywords for ($i = 0; $i < $metas->length; $i++) { $meta = $metas->item($i); if (strtolower($meta->getAttribute('name')) == 'description') { $description = $meta->getAttribute('content'); } if (strtolower($meta->getAttribute('name')) == 'keywords') { $keywords = $meta->getAttribute('content'); } } // Exibe os valores obtidos echo "Title: $title "; echo "Description: $description "; echo "Keywords: $keywords "; } ?>
Build interactive, data-driven websites with the potent combination of open source technologies and web standards, even if you have only basic HTML knowledge. With the latest edition of this popular hands-on guide, you'll tackle dynamic web programming using the most recent versions of today's core technologies: PHP, MySQL, JavaScript, CSS, HTML5, jQuery, and the powerful React library. Web designers will learn how to use these technologies together while picking up valuable web programming practices along the way, including how to optimize websites for mobile devices. You'll put everything together to build a fully functional social networking site suitable for both desktop and mobile browsers. Explore MySQL from database structure to complex queries Use the MySQL PDO extension, PHP's improved MySQL interface Create dynamic PHP web pages that tailor themselves to the user Manage cookies and sessions and maintain a high level of security Enhance JavaScript with the React library Use Ajax calls for background browser-server communication Style your web pages by acquiring CSS skills Implement HTML5 features, including geolocation, audio, video, and the canvas element Reformat your websites into mobile web apps