Outils pour capturer et convertir le Web

API PHP Scraper avec GrabzItAPI 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 Télécharger 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.

  • string getExtension() - obtient l'extension de tout fichier résultant de la suppression.
  • string getFilename() - récupère le nom de fichier de tout fichier résultant de la suppression.
  • object toJSON() - convertit tout fichier JSON résultant de la récupération into un objet.
  • string toString() - convertit tout fichier résultant de la récupération en un string.
  • SimpleXMLElement toXML() - convertit tout fichier XML résultant de la récupération en un élément XML.
  • boolean save($path) - saves tout fichier résultant de la récupération, renvoie true s'il réussit.

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.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é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.

  • GrabzItScrape[] GetScrapes() - renvoie tous les utilisateurs en tant que tableau d'objets GrabzItScrape.
  • GrabzItScrape GetScrape($id) - retourne un objet GrabzItScrape représentant le scrap souhaité.
  • SetScrapeProperty($id, $property) - définit le propriété d'une éraflure et retourne vrai en cas de succès.
  • SetScrapeStatus($id, $status) - définit le statut ("Démarrer", "Arrêter", "Activer", "Désactiver") d'une éjection et renvoie true en cas de succès.
  • SendResult($id, $resultId) - renvoie le résultat d'un scrap et renvoie true en cas de succès.
    • L'identifiant de scrap et l'identifiant de résultat peuvent être trouvés à partir de la méthode GetScrape.
  • SetLocalProxy($proxyUrl) - définit le serveur proxy local à utiliser pour toutes les demandes.