Outils pour capturer et convertir le Web

API PHP Scraper avec GrabzIt

API PHP Scraper

Notre API PHP Scraper permet d'ajouter à votre application la puissance du Web Scraper de GrabzIt. C'est une bien meilleure solution que les simples analyseurs HTML DOM, généralement mis en œuvre par les applications de scraping PHP.

Pour commencer, vous devez créer une éraflure. Ensuite, pour analyser le Web dans votre application, vous devez download la bibliothèque PHP. Enfin, pour commencer, examinez l'exemple de gestionnaire situé à l'intérieur du téléchargement.

Traiter les données grattées

Le moyen le plus simple de traiter les données extraites consiste à accéder aux données sous forme d'objet JSON ou XML. Cela permet de manipuler et d'interroger facilement les données. Le JSON sera structuré dans le format général suivant, avec le nom du jeu de données comme attribut d'objet. Elle-même contient un tableau d'objets avec chaque nom de colonne comme autre attribut.

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

Tout d'abord, il faut se rappeler que le gestionnaire recevra toutes les données extraites. Cela peut inclure des données qui ne peuvent pas être converties en objets JSON ou XML. Par conséquent, le type de données que vous recevez doit être vérifié avant d’être traité.

$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());
}

L'exemple ci-dessus montre comment parcourir en boucle tous les résultats de l'ensemble de données. Dataset_Name. Ensuite, pour chaque résultat, effectuez une action spécifique en fonction de la valeur de la Column_Two attribut. De plus, si le fichier reçu par le gestionnaire n’est pas un fichier JSON, il est simplement saved au répertoire des résultats. Bien que la classe ScrapeResult tente de s'assurer que tous les fichiers publiés proviennent des serveurs de GrabzIt. L’extension des fichiers doit également être vérifiée avant qu’ils ne soient saved.

Méthodes ScrapeResult

La liste ci-dessous répertorie toutes les méthodes de la classe ScrapeResult qui peuvent être utilisées pour traiter les résultats de scrap.

Débogage

Le meilleur moyen de déboguer votre gestionnaire PHP est de télécharger les résultats pour un extrait de la éraflures Web page. ensuite save le fichier que vous rencontrez un problème à un emplacement accessible. Le chemin de ce fichier peut ensuite être transmis au constructeur de la classe ScrapeResult. Cela vous permet de déboguer votre gestionnaire sans avoir à effectuer une nouvelle opération chaque fois, comme indiqué ci-dessous.

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

//the rest of your handler code remains the same

Contrôler une éraflure

Avec l'API Web Scraper de GrabzIt, vous pouvez modifier le statut d'un scrap. En démarrant, en arrêtant, en activant ou en désactivant un raclage à distance, au besoin. Ceci est montré dans l'exemple ci-dessous. En passant l’identifiant de la gratte avec le statut de gratte souhaité à la SetScrapeStatus méthode.

$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);
}

Méthodes et propriétés GrabzItScrapeClient

Vous trouverez ci-dessous la liste de toutes les méthodes et propriétés de la classe GrabzItScrapeClient pouvant être utilisées pour contrôler les éraflures Web.