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 download a biblioteca PHP. Por fim, para começar, veja o manipulador de exemplo localizado dentro do download.
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.
Listados abaixo estão todos os métodos da classe ScrapeResult que podem ser usados para processar resultados de raspagem.
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
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/"); } //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); }
Listados abaixo estão todos os métodos e propriedades da classe GrabzItScrapeClient que podem ser usados para controlar os scrapes da Web.