Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Criação e programação de Bot simples com PHP, Manuais, Projetos, Pesquisas de Programação de Rede

como fazer bots com PHP, referencia da PackPub, traduzido com o uso do Google Tradutor.

Tipologia: Manuais, Projetos, Pesquisas

2019
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 19/09/2019

rafael-jesus
rafael-jesus 🇧🇷

5

(3)

1 documento

1 / 37

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Botas simples instantâneas com PHP
Por Shay Michael Anderson
Setembro de 2013
Melhore suas habilidades de arranque e crie seus próprios bots da web com o PHP
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
Discount

Em oferta

Pré-visualização parcial do texto

Baixe Criação e programação de Bot simples com PHP e outras Manuais, Projetos, Pesquisas em PDF para Programação de Rede, somente na Docsity!

Botas simples instantâneas com PHP

Por Shay Michael Anderson Setembro de 2013 Melhore suas habilidades de arranque e crie seus próprios bots da web com o PHP

Capítulo 1. Botas simples instantâneas com PHP

Bem-vindo ao Instant Simple Botting com PHP. Este livro irá explicar todas as

informações e códigos que você precisará para iniciar o arranque simples com o PHP.

Usando este livro e o PHP, você aprenderá os conceitos básicos de pedidos e respostas

em HTML, começará a construir seu próprio bot e aprenderá como analisar e salvar

dados que você colhe com o seu bot.

Este documento contém as seguintes seções:

Então, o que é Simple Botting com PHP? Permite que você descubra o que é o simples

arranque com o PHP, o que você pode fazer com isso, como você pode criar seus

próprios bots e por que é tão bom.

A instalação ensina como criar seus próprios aplicativos PHP de linha de comando, como

executar aplicativos PHP de linha de comando, a diferença entre o uso de cURL e

conexões de soquete simples e como executar solicitações HTTP GET e POST simples.

O início rápido irá ensinar-lhe como criar o seu próprio bot, implementar as

configurações de configuração do bot, instanciar o bot e executar solicitações e salvar

dados colhidos pelo bot.

Os 5 principais recursos que você precisa saber sobre o ajudarão a descobrir como

executar cinco importantes tarefas de arranque. No final desta seção, você poderá

analisar dados colhidos, armazenar dados analisados de várias maneiras, criar log de bot,

adicionar sigilo aos seus bots e começar a criar recursos avançados para seus bots, como

o gerenciamento de links.

As pessoas e os lugares que você deve conhecer irão fornecer-lhe várias sugestões e

links úteis para a página do projeto, bem como artigos e tutoriais que podem ajudá-lo a

desenvolver potentes bots do PHP. Os projetos de código aberto são centrados em uma

comunidade de compartilhamento de informações e ferramentas.

Então, o que é Simple Botting com PHP?

Neste livro, vou explicar como criar seus próprios robôs usando o PHP. Você já deve estar

familiarizado com o PHP ( linguagem de script do Hypertext Preprocessor ) e as

funções comuns do PHP incorporadas. Ao longo deste livro, só usarei funções PHP

comuns que estarão disponíveis em instalações básicas de PHP. O PHP é um bom idioma

para usar para criar o seu primeiro robô porque é uma linguagem popular e poderosa que

pode ser facilmente testada em um navegador da Web.

O que é um robô? Um robot ou bot ou web bot ou spider (bots que naveguem por conta

própria) aplicativo de software que costumava executar sistematicamente pedidos e lidar

com respostas que podem ser usadas em benefício de seu desenvolvedor. Esses

benefícios podem incluir atividades como coleta ou colheita de dados, verificação de um

site por erros ou links, verificação de e-mail ou tratamento de problemas mais avançados,

como rastreamento e arquivamento de vários sites.

Por que usar robôs? Os benefícios listados acima são todos bons motivos para usar bots.

Além disso, os bots geralmente podem ser usados para completar tarefas, economizando

próxima seção, analisaremos as solicitações HTTP GET e as respostas HTTP em

detalhes e começaremos a executar esses tipos de solicitações.

Passo 1 - configuração do ambiente de desenvolvimento Enquanto você já deve estar familiarizado com as funções básicas de PHP e lógica, vou descrever o ambiente de desenvolvimento básico, que você deve usar ao ler e usar o código neste livro. Conforme mencionado anteriormente, estarei usando padrões de codificação PHP 5.4 em todos os exemplos de código neste livro. Portanto, você deve usar um servidor web equipado com um básico PHP 5.4. Além disso, durante o curso deste livro, vou usar linhas de comando para executar aplicativos PHP usando um servidor web com um sistema operacional Linux (Ubuntu 12 para ser exato). No meu servidor Ubuntu, eu instalaria o PHP com o seguinte suporte de linha de comando usando: cópia de

sudo apt-get install php5 libapache2-mod-php5 php5-cli

Você pode verificar a versão do PHP instalada em seu servidor web de duas maneiras. Primeiro, se você tem um PHP CLI ( Command Line Interface ) SAPI ( Servidor API ) instalado no seu servidor web, você pode usar uma linha de comando para obter a versão do PHP. Aqui está um exemplo de linha de comando em um servidor web Linux: cópia de

php –v

Isso imprimirá algo como: cópia de PHP 5.4.6-1ubuntu1.1 (cli) (built: Nov 15 2012 01:18:34)Copyright (c) 1997-2012 The PHP GroupZend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies No exemplo anterior, meu servidor web está preparado com o PHP 5.4.6 instalado. A segunda maneira de verificar a versão do PHP em seu servidor web é configurar um script PHP que exibirá as informações do servidor web PHP em uma página da Web. Para fazer isso, execute as seguintes etapas:

1. Crie um arquivo chamado info.php em seu servidor web no /var/www diretório e adicione o seguinte conteúdo ao arquivo:

cópia de

2. Salve o /var/www/info.php arquivo e abra a página da Web em um navegador da Web. Por exemplo, o URL para a página da Web pode

parecer algo como: cópia de http://localhost/info.php

  1. Depois de carregar a página da Web em um navegador da Web, você deve ver a versão do PHP no topo da página. Vai parecer algo assim: Você pode ver isso - usando este método - meu servidor web tem a versão PHP 5.4.6 instalada.

Relatório de erro PHP

Se você não está familiarizado com o relatório de erros do PHP ( www.php.net/manual/en/function.error-reporting.php ) e exibindo erros de PHP ( www.php.net/manual/en/errorfunc.configuration.php#ini .display-errors ), eu sugeriria ler sobre esses dois tópicos. Qualquer programador de PHP proficiente deve estar acostumado a relatórios de erros do PHP e exibir erros de PHP. Eu recomendo que você desenvolva os bots deste livro, e todos os outros códigos deste livro, em um ambiente de desenvolvimento e não um ambiente de produção. No seu ambiente de desenvolvimento, eu sugeriria que o PHP exibisse erros, avisos e notificações. Sem estes ativados, você pode se perder com alguns dos exemplos neste livro. Passo 2 - aplicativos de linha de comando Embora você possa desenvolver bots e testá-los usando aplicativos PHP típicos baseados no navegador, às vezes é útil desenvolver e testar bots usando aplicativos de linha de comando PHP. Eu prefiro usar aplicativos de linha de comando para desenvolver bots e testá-los, porque os aplicativos de linha de comando nos permitem um melhor uso de memória, mensagens / alertas em tempo real e a capacidade de disparar processos escravos (um tópico avançado, fora do escopo deste livro). Neste livro, estarei usando aplicativos PHP típicos baseados no navegador, porque será mais fácil para a maioria dos programadores. No entanto, abrangeria o uso de aplicativos de linha de comando PHP aqui, caso você prefira desenvolver e testar seus robôs usando aplicativos de linha de comando. Criar um aplicativo de linha de comando PHP é muito simples. Então, se você nunca criou um antes, não se preocupe em ter que aprender muita lógica nova. Vamos criar um aplicativo de linha de comando PHP simples agora. Para criar um aplicativo de linha de comando PHP e executá-lo em seu servidor web, você precisará de uma CLI PHP. Então, instale isso antes de tentar a execução de um aplicativo de linha de comando PHP. No meu servidor web (Linux, Ubuntu), posso instalar uma CLI PHP usando a seguinte linha de comando: cópia de # sudo apt-get install php5-cli Salve um arquivo chamado 01_command_line_app.phpem seu servidor web, em um diretório que você usará para todo o código neste livro () e adicione o seguinte código ao project_directory/01_command_line_app.phparquivo: cópia de **#!/usr/bin/env php

else // PHP cURL library not installed { echo 'Please install PHP cURL library'; } No código anterior, usamos a biblioteca cURL para criar uma solicitação HTTP GET simples (o tipo de solicitação padrão para a biblioteca cURL é um GET). Como você pode ver, esta é uma maneira bastante simples de executar um pedido HTTP GET em PHP. No entanto, como eu disse anteriormente, neste livro, vou usar a file_get_contents()função PHP para executar solicitações HTTP.

Início rápido - desenvolvimento de um bot

Agora que cobrimos o ambiente de desenvolvimento, podemos chegar ao material

divertido, isto é, programar nosso primeiro bot. Para começar, desenvolveremos um

pacote HTTP, que podemos usar em nossos aplicativos de bot para lidar com solicitações

e respostas HTTP.

Passo 1 - Classes de solicitação HTTP

Agora que discutimos o nosso ambiente de desenvolvimento, padrões de codificação e como as solicitações e respostas HTTP básicas funcionam, vamos criar uma classe de solicitação HTTP que realmente faça algo útil. Novamente, se você não está familiarizado com o desenvolvimento de classes PHP e usando objetos PHP, você procurará investigar esses tópicos antes de ler esta seção. Embora este livro seja um livro inicial para o desenvolvimento de bots do PHP, eu quero ensinar-lhe a maneira correta de desenvolver bots, o que significa usar o poder e a reutilização de classes e objetos, também conhecido como OOP ( Object-Oriented Programming ). Quando usamos classes bem desenhadas, podemos usá-las como objetos em nosso projeto atual, que estamos desenvolvendo para essas classes. Além disso, outros projetos futuros que exigem o mesmo tipo de funcionalidade e lógica podem usar essas classes como objetos. Se você deseja ser um programador produtivo e bem sucedido, você precisará aceitar esse ponto de vista, se você ainda não o fez. Nesta seção, vou ajudá-lo a desenvolver uma classe de solicitação HTTP básica que poderemos usar em todos os nossos bots que precisam desse tipo de ferramenta. Mais tarde, criaremos uma classe de resposta HTTP que permitirá facilmente a nossa classe de solicitação retornar objetos em vez de matrizes de informações, o que será muito útil. Antes de começar a desenvolver uma aula, você deve sempre passar algum tempo projetando-a principalmente. Desta forma, você não terá que pensar tanto enquanto estiver desenvolvendo a classe. Então, vamos passar um pouco de tempo pensando no design da nossa classe de solicitação HTTP. Aqui estão alguns requisitos que precisaremos na nossa classe de solicitação HTTP:

  • Nós precisaremos de métodos para pedidos HTTP GET e HEAD
  • Os métodos de solicitação devem ser simples, só queremos passar um URL e um valor de tempo limite para os métodos GET e HEAD
  • Queremos que os métodos de solicitação retornem objetos de resposta HTTP, não arrays ou outros valores escalares Estes são alguns bons requisitos para uma classe de solicitação HTTP básica. Obviamente, poderíamos ir muito mais longe com o design da nossa classe e adicionar outras opções e métodos avançados, como o modo de depuração e o registro. No entanto, estamos desenvolvendo esse projeto, vamos ser bem sucedidos. Antes de começar a desenvolver a classe de solicitação HTTP, vamos configurar uma estrutura de diretório do projeto através das seguintes etapas. Você poderá usar esta estrutura de diretório para todos os projetos neste livro.
  1. Crie a seguinte estrutura de diretório e arquivos (os arquivos podem estar vazios por enquanto) em uma localização desejada em seu servidor web: cópia de '-- project_directory |-- lib | '-- HTTP | |--Request.php | '--Response.php |-- 01_command_line_app.php (from command line application example) '-- 02_http.php

2. Agora, coloque todos os nossos arquivos de classe (arquivos de biblioteca) no project_directory/lib diretório.

3. Abra o Request.php arquivo.

4. Adicione as primeiras linhas de código para nossa Request classe localizadas em project_directory/lib/HTTP/ :

cópia de

cópia de /**

  • Execute HTTP GET request
  • @param string $url
  • @param int|float $timeout (seconds)
  • @return \HTTP\Response / public static function get($url, $timeout = 0) { $context = stream_context_create(); stream_context_set_option($context, 'http', 'timeout', self::__formatTimeout($timeout)); $http_response_header = NULL; // allow updating $res_body = file_get_contents($url, false, $context); return self::__parseResponse($res_body, $http_response_header); } O método anterior é muito simples. Dizemos o get()método - através dos parâmetros - qual URL para enviar para o GETpedido. Então podemos passar um valor de tempo limite opcional. Nosso get()método, em seguida, cria o contexto necessário para a GETsolicitação HTTP , envia a solicitação e cria e retorna um \HTTP\Responseobjeto que podemos usar. Em seguida, podemos construir o head()método. Um pedido HTTP HEAD é uma solicitação muito simples GETque não inclui um corpo de mensagem de resposta. Essa solicitação pode ser útil para pedidos simples, como fazer ping em um serviço HTTP em um servidor web. Aqui está o código para a solicitação HEAD. Insira o seguinte fragmento de código na nossa Requestclasse, localizado em project_directory/lib/HTTP/: cópia de /*
  • Execute HTTP HEAD request
  • @param string $url
  • @param int|float $timeout
  • @return \HTTP\Response */ public static function head($url, $timeout = 0) { $context = stream_context_create(); stream_context_set_option($context, [ 'http' => [ 'method' => 'HEAD', 'timeout' => self::__formatTimeout($timeout)

] ]); $http_response_header = NULL; // allow updating $res_body = file_get_contents($url, false, $context); return self::__parseResponse($res_body, $http_response_header); } O método anterior é muito direto. Primeiro, aceitamos os valores de URL e tempo limite. Então, nós configuramos um personalizado stream_context, que é usado quando buscamos a solicitação HEAD HTTP. Então, usamos a função PHP embutida file_get_contents()para enviar a solicitação HTTP HEAD. Finalmente, devolvemos o \HTTP\Responseobjeto, que é criado em nosso __parseResponse()método. Passo 2 - aula de resposta HTTP Agora, precisamos criar uma Responseclasse HTTP que possa ser usada para transformar facilmente nossos dados de resposta HTTP em um objeto utilizável. Desta forma, uma vez que recebemos uma resposta HTTP em nossa Requestclasse, simplesmente passamos os dados de resposta para o nosso Responseobjeto e não precisamos pensar em todos os detalhes e métodos necessários para usar os dados de resposta HTTP em nossos aplicativos. Crie um arquivo chamado Response.phpno diretório do pacote HTTP e adicione o código disponível project_directory/lib/HTTP/Response.phpno arquivo de download do código fonte do livro no site do Packt Publishing. Como você pode ver, é preciso algumas linhas de código para criar nossa \HTTP\Responseclasse, no entanto, a classe é muito simples. Primeiro, definimos códigos de status de resposta HTTP e mensagens de código de status. Os códigos de status são usados pelos servidores da Web para indicar o status da resposta. Por exemplo, se uma solicitação HTTP GET for enviada para um servidor web e o servidor web retornar um código de status de resposta HTTP 200 , sabemos que o pedido foi tratado com sucesso. Você pode ver, observando os Responsecódigos de status da classe e as mensagens do código de status, que há uma variedade de códigos de status e mensagens que o servidor da Web pode responder. Em seguida, no __construct()método da Responseclasse, aceitamos o código de status, type(tipo de conteúdo) body, e header. Estes são os únicos parâmetros que precisamos para executar operações como inicialização ou instanciação com o Responseobjeto para que ele funcione adequadamente para nós. Por que usar objetos? Agora que temos nossos \HTTP\Requeste \HTTP\Responseobjetos concluídos, vejamos por que estamos desenvolvendo classes e usando objetos ( Programação Orientada a Objetos ou OOP ) em vez de usar linhas processuais de código ( Programação Orientada a Procedimentos ou POP ). Para ilustrar este ponto, eu vou fazer você executar sua primeira solicitação HEAD HTTP com nossas HTTPclasses. Crie um arquivo chamado 02_http.phpno diretório do projeto onde ele terá acesso ao /project_directory/lib/HTTPdiretório. Adicione o seguinte código ao 02_http.phparquivo localizado em /project_directory/: cópia de

'. print_r($response, true). '';

Passo 3 - usando arquivos de bootstrap Agora que temos o nosso HTTPconjunto de pacotes pelo espaço para nome HTTP, preenchido, podemos usá-lo facilmente para outros projetos e aplicativos. Às vezes, especialmente quando se utilizam grandes pacotes ou arquivos de bibliotecas, é difícil lembrar ou descobrir o que exatamente precisa ocorrer para que possamos obter um pacote pronto para uso em nossos próprios aplicativos de software. Um pacote pode exigir configurações de configuração extensivas, carregamento automático de classe, carregamento comum de arquivos, pacotes externos ou arquivos de bibliotecas e muito mais. Uma solução simples para esse problema é usar um arquivo de inicialização. Um arquivo bootstrap pode ser usado para inicializar tudo o que o pacote precisa para carregar e inicializar corretamente. Nosso HTTPpacote não exige muito carregamento de arquivos ou qualquer configuração, mas, por uma questão de exemplo, vamos criar um arquivo de inicialização simples para o nosso HTTPpacote:

1. Crie um arquivo chamado bootstrap.php no HTTP diretório do pacote.

2. Adicione o seguinte código à nossa bootstrap classe, localizado em project_directory/lib/HTTP/ :

cópia de

3. Agora, em nosso 02_http.php arquivo, modifique o código para usar nosso bootstrap.php arquivo em vez de carregar os arquivos da

classe manualmente: cópia de

success) { echo 'Successful request
'; } else {

echo 'Error: request failed, status code: '

. $response->getStatusCode(). '
'; // prints status code } // print out HTTP response (\HTTP\Response object) echo '

'. print_r($response, true). '
'; Embora este seja um exemplo extremamente simples de como um arquivo de bootstrap pode ser usado para tornar o uso de um pacote mais fácil, ainda é benéfico para qualquer programador que use nosso código. Além disso, em seções posteriores deste livro, estaremos usando arquivos de bootstrap quando desenvolvamos nosso pacote de bot. Passo 4 - criando nosso primeiro bot, WebBot Neste ponto do livro, você deve estar ciente e confortável com solicitações e respostas HTTP, como desenvolver HTTPpacotes (cobertos anteriormente no livro) e por que usamos arquivos de bootstrap. Com o conhecimento que você ganhou, agora estamos prontos para desenvolver nosso primeiro bot, que será um botão simples que reúne dados (documentos) com base em uma lista de URLs e conjuntos de dados (valores de campo e campo) que precisaremos. Primeiro, vamos começar criando nosso diretório de pacotes bot. Então, crie um diretório chamado WebBotpara que os arquivos em nosso project_directory/libdiretório se parecem com o seguinte: cópia de '-- project_directory|-- lib | |-- HTTP (our existing HTTP package) | | '-- (HTTP package files here) | '-- WebBot | |-- bootstrap.php| |-- Document.php | '-- WebBot.php |-- (our other files)'-- 03_webbot.php Como você pode ver, temos um diretório e uma estrutura de arquivos muito limpos e simples que qualquer programador pode facilmente seguir e entender. Passo 5 - a classe WebBot Em seguida, abra o arquivo de WebBot.phparquivo e adicione o código do arquivo de download do código fonte do livro project_directory/lib/WebBot/WebBot.phpno site do Packt Publishing. Em nossa WebBotclasse, utilizamos primeiro o __construct()método para passar arraydos URLs (ou documentos) que queremos buscar, e os arraycampos de documento são usados para definir conjuntos de dados e padrões de expressão regulares. Os padrões de expressão regulares são usados para preencher os valores do conjunto de dados (ou valores do campo do documento). Se você não está familiarizado com expressões regulares, agora seria um bom momento para estudá-los. Então, no __construct()método, verificamos se existem URLs para buscar ou não. Se lá, definimos uma mensagem de erro informando esse problema. Em seguida, usamos o __formatUrl()método para formatar os URLs que buscamos dados. Este método também definirá o protocolo correto: HTTP ou HTTPS ( Hypertext Transfer Protocol Secure ). Se o protocolo já estiver definido para o URL, por exemplo http://www.[dom].com, ignoramos a configuração do protocolo. Além disso, se a configuração de configuração da classe conf_force_httpsestiver configurada true, forçamos o protocolo HTTPS novamente, a menos que o protocolo já esteja definido para o URL. Em seguida, utilizamos o execute()método para buscar dados para cada URL, definir e adicionar os Documentobjetos aos arraydocumentos e rastrear estatísticas de documentos. Este método também implementa a lógica fetchdelay que atrasará cada busca por x número de segundos, se configurada nas configurações de configuração da classe conf_delay_between_fetches. Também incluímos a lógica que só permite extrações de URL distintas, o que significa que, se já obtivemos dados para uma URL, não a buscaremos novamente; Isso elimina as buscas de dados de URL duplicados. O Documentobjeto é usado como um contêiner para os dados da URL, e podemos usar o Documentobjeto para usar os dados da URL, os campos de dados e os respectivos valores de campo de dados. No execute()método, você pode ver que realizamos uma \HTTP\Request::get()solicitação usando o URL e nosso valor de tempo limite padrão - que é definido com as configurações de configuração da classe conf_default_timeout. Em seguida, passamos o \HTTP\Responseobjeto que é retornado pelo \HTTP\Request::get()método para o Documentobjeto. Em seguida, o Documentobjeto usa os dados do \HTTP\Responseobjeto para criar os dados do documento. Finalmente, incluímos o getDocuments()método, que simplesmente retorna todos os Documentobjetos em um arrayque podemos usar para nossos próprios propósitos conforme desejamos.

cópia de

  • A primeira variável de configuração é conf_default_timeout. Esta variável é usada para definir globalmente o tempo limite padrão (em segundos) para todos os WebBot objetos que criamos. O valor de tempo limite informa à \HTTP\Request classe quanto tempo ele continua tentando enviar uma solicitação antes de parar e julgá-la como uma solicitação incorreta ou uma solicitação de tempo limite. Por padrão, esse valor de configuração é definido como 30 (segundos).
  • The second configuration variable—conf_delay_between_fetches —is used to set a time delay (in seconds) between fetches (or HTTP requests). This can be very useful when gathering a lot of data from a website or web service. For example, say, you had to fetch one million documents from a website. You wouldn't want to unleash your bot with that type of mission without fetch delays because you could inevitably cause—to that website—problems due to massive requests. By default, this value is set to 0 , or no delay.
  • A WebBot variável de configuração da terceira classe conf_force_https - quando definida como true , pode ser usada para forçar o protocolo HTTPS. Como mencionado anteriormente, isso não irá substituir qualquer protocolo que já esteja definido no URL. Se a conf_force_https variável estiver configurada false , o protocolo HTTP será usado. Por padrão, esse valor está definido para false.
    • A quarta e última variável de configuração conf_include_document_field_raw_values - quando definida como true , forçará o Document objeto a incluir os raw valores obtidos dos "padrões de expressão regulares". Nós discutimos as configurações em detalhes na seção da Classe de Documentos do WebBot anteriormente neste livro. Por padrão, esse valor está definido para false. Passo 8 - a execução do WebBot Agora que temos nossa WebBotclasse, WebBot Documentclasse e WebBotarquivo de inicialização concluída, podemos começar a testar nosso bot. Adicione o seguinte código ao 03_webbot.phparquivo localizado em project_directory/: cópia de
    'www.google.com', 'chrome' => 'www.google.com/intl/en/chrome/browser/', 'products' => 'www.google.com/intl/en/about/products/' ]; // document fields [document field ID => document field regex // pattern, [...]] $document_fields = [ 'title' => '(.*)\<\/title>', 'h2' => ']*?>(.*)<\/h2>', ]; // set WebBot object $webbot = new \WebBot\WebBot($urls, $document_fields); // execute fetch data from URLs $webbot->execute(); // display documents summary echo $webbot->total_documents. ' total documents
    '; echo $webbot->total_documents_success. ' total documents fetched successfully
    '; echo $webbot->total_documents_failed. ' total documents failed to fetch

    '; // check if fetch(es) successful if($webbot->success) { // display each document foreach($webbot->getDocuments() as /* \WebBot\Document */ $document) { if($document->success) // was document data fetched successfully? { // display document meta data

    [title] => Array ( [0] => Google ) [h2] => Array ( [0] => Account Options ) ) Document: chrome URL: http://www.google.com/intl/en/chrome/browser/ Array ( [title] => Array ( [0] => Chrome Browser ) [h2] => Array ( [0] => Customize your browser [1] => Get Chrome for Mobile [2] => Up to 15 GB free storage [3] => Get a fast, free web browser ) ) Document: products URL: http://www.google.com/intl/en/about/products/ Array ( [title] => Array

    ( [0] => Google - Products ) [h2] => Array ( [0] => Web[1] => Mobile [2] => Media [3] => Geo [4] => Specialized Search [5] => Home & Office [6] => Social [7] => Innovation ) ) Podemos ver os resultados que nosso bot está operando como esperado. Primeiro, podemos ver que obtivemos um total de três documentos, três documentos foram obtidos com sucesso, e o bot não conseguiu obter zero documentos. Podemos então ver o título, URL e campos (e valores de campo) para cada documento. O bot analisou com sucesso cada campo e valor do campo. Este tipo de bot seria útil para colher vários tipos de documentos e campos de documentos de sites ou serviços web desejados.

    Top 5 recursos que você precisa saber sobre

    Agora que temos um web bot trabalhando, podemos começar a olhar para outros

    recursos que podem ser adicionados ao nosso bot para melhorar sua produtividade e

    permitir que o nosso bot continue funcionando com sucesso. Nesta seção, vou cobrir os

    cinco principais recursos do bot:

    • Rastreamento de bot (log de depuração)
    • Parsing bot data
    • Armazenando dados de bot analisados
    • Furtividade do Bot
    • Outros recursos avançados (inclui gerenciamento de links)

    Embora tenhamos um bot funcional, isso não significa que devemos parar por aí. Claro, o

    nosso bot pode sair e pegar dados usando técnicas de análise simples, no entanto, em

    projetos do mundo real, queremos que nosso bot analise facilmente os dados, armazene

    os dados e continue coletando os dados com êxito. Mas muitas vezes a colheita de dados

    pode ser problemática, uma vez que existem muitos obstáculos para os robôs ao colher

    grandes quantidades de dados. Assim, o rastreamento de bot nos ajudará a depurar

    qualquer problema que possa surgir ao coletar dados. Finalmente, no final desta seção,

    abordarei o gerenciamento de links; Este é um aspecto muito importante da

    funcionalidade do web bot que não deve ser ignorado.

    Nesta seção, vamos modificar o código que desenvolvemos no WebBotpacote. Como

    faremos modificações no código anterior, criaremos uma cópia do nosso WebBotpacote

    original e ligamos para ele WebBot2. O diretório e a estrutura do arquivo devem ser os

    seguintes: