Ferramentas para capturar e converter a Web

API do raspador PHP com GrabzItAPI do raspador PHP

Nossa API do raspador PHP permite que o poder do raspador da Web do GrabzIt seja adicionado ao seu aplicativo. Essa é uma solução muito melhor do que os simples analisadores HTML DOM, geralmente implementados por aplicativos de raspagem PHP.

Para começar, você deve criar um arranhão. Em seguida, para analisar a web no seu aplicativo, você deve baixar a biblioteca PHP. Por fim, para começar, veja o manipulador de exemplo localizado dentro do download.

Processar dados raspados

A maneira mais fácil de processar dados raspados é acessar os dados como um objeto JSON ou XML. Como isso permite que os dados sejam facilmente manipulados e consultados. O JSON será estruturado no seguinte formato geral, com o nome do conjunto de dados como o atributo do objeto. Ele mesmo contendo uma matriz de objetos com cada nome de coluna como outro atributo.

{
  "Dataset_Name": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

Antes de tudo, deve-se lembrar que o manipulador receberá todos os dados extraídos. Isso pode incluir dados que não podem ser convertidos em objetos JSON ou XML. Portanto, o tipo de dados que você está recebendo deve ser verificado antes de ser processado.

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult();

if ($scrapeResult->getExtension() == 'json')
{
    $json = $scrapeResult->toJSON();
    foreach ($json->Dataset_Name as $obj)
    {
        if ($obj->Column_Two == "Found")
        {
            //do something
        }
        else
        {
            //do something else
        }
    }
}
else
{
    //probably a binary file etc save it
    $scrapeResult->save("results/".$scrapeResult->getFilename());
}

O exemplo acima mostra como percorrer todos os resultados do conjunto de dados Dataset_Name. Em seguida, para cada resultado, execute uma ação específica, dependendo do valor do Column_Two atributo. Além disso, se o arquivo recebido pelo manipulador não for um arquivo JSON, será apenas saved para o diretório de resultados. Enquanto a classe ScrapeResult tenta garantir que todos os arquivos publicados sejam originários dos servidores do GrabzIt. A extensão dos arquivos também deve ser verificada antes de serem saved.

Métodos ScrapeResult

Listados abaixo estão todos os métodos da classe ScrapeResult que podem ser usados ​​para processar resultados de raspagem.

  • string getExtension() - obtém a extensão de qualquer arquivo resultante da raspagem.
  • string getFilename() - obtém o nome do arquivo de qualquer arquivo resultante da raspagem.
  • object toJSON() - converte qualquer arquivo JSON resultante da raspagem intum objeto.
  • string toString() - converte qualquer arquivo resultante da raspagem em um string.
  • SimpleXMLElement toXML() - converte qualquer arquivo XML resultante da raspagem em um elemento XML.
  • boolean save($path) - saves qualquer arquivo resultante da raspagem, retorna verdadeiro se for bem-sucedido.

depuração

A melhor maneira de depurar seu manipulador PHP é fazer o download dos resultados de um raspar do diretório arranhões na web página. Então save o arquivo com o qual você está tendo problemas para um local acessível. O caminho desse arquivo pode ser passado para o construtor da classe ScrapeResult. Isso permite que você depure seu manipulador sem precisar fazer uma nova limpeza a cada vez, como mostrado abaixo.

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

Controlando uma raspagem

Com a API do raspador da Web do GrabzIt, você pode alterar o status de uma raspagem. Iniciando, parando, ativando ou desativando remotamente uma raspagem, conforme necessário. Isso é mostrado no exemplo abaixo. Ao passar o ID da raspagem junto com o status de raspagem desejado para o SetScrapeStatus método.

$client = new \GrabzIt\Scraper\GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
$myScrapes = $client->GetScrapes();
if (empty($myScrapes))
{
    throw new Exception("You haven't created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx");
}
//Start the first scrape
$client->SetScrapeStatus($myScrapes[0]->ID, "Start");
if (count($myScrapes[0]->Results) > 0)
{
    //re-send first scrape result if it exists
    $client->SendResult($myScrapes[0]->ID, $myScrapes[0]->Results[0]->ID);
}

Métodos e propriedades de GrabzItScrapeClient

Listados abaixo estão todos os métodos e propriedades da classe GrabzItScrapeClient que podem ser usados ​​para controlar os scrapes da Web.

  • GrabzItScrape[] GetScrapes() - retorna todos os rascunhos dos usuários como uma matriz de objetos GrabzItScrape.
  • GrabzItScrape GetScrapes($id) - retorna um objeto GrabzItScrape que representa a raspagem desejada.
  • SetScrapeProperty($id, $property) - define o propriedade de um arranhão e retorna verdadeiro se for bem-sucedido.
  • SetScrapeStatus($id, $status) - define o status ("Iniciar", "Parar", "Ativar", "Desativar") de uma raspagem e retorna verdadeiro se for bem-sucedido.
  • SendResult($id, $resultId) - reenvia o resultado de uma raspagem e retorna verdadeiro se for bem-sucedido.
    • A identificação de raspar e a identificação do resultado podem ser encontradas no método GetScrape.
  • SetLocalProxy($proxyUrl) - define o servidor proxy local a ser usado para todas as solicitações.