Outils pour capturer et convertir le Web

API Web Scraper pour ASP.NET API ASP.NET Scraper

Tout d'abord Télécharger l’API Web Scraper pour ASP.NET et inspectez le fichier handler.ashx situé dans l’exemple de projet Web pour commencer.

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, car 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, contenant lui-même un tableau d'objets avec chaque nom de colonne comme autre attribut.

{
  "Items": [
    {
      "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, qui peuvent 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é.

Cependant, avec l'API ASP.NET, une étape supplémentaire est nécessaire pour lire les fichiers JSON ou XML, dans lesquels sont créées des classes correspondant à la structure de données attendue. Un exemple de ceci est montré ci-dessous où deux définitions de classe ont été créées pour contenir la structure de données JSON ci-dessus.

public class DataSet
{
    public List<Item> Items;
}

public class Item
{
    public string Column_One;
    public string Column_Two;
}

Ces classes sont maintenant utilisées pour convertir un fichier JSON into une structure d'objet utilisable. Dans l'exemple ci-dessous, le constructeur ScrapeResult ci-dessous reçoit la classe HttpRequest. Cependant, il accepte également la classe HttpRequestBase pour la rendre compatible avec les projets Web ASP.NET MVC.

ScrapeResult scrapeResult = new ScrapeResult(context.Request);

if (scrapeResult.Extension == "json")
{
    DataSet dataSet = scrapeResult.FromJSON<DataSet>();
    foreach (Item item in dataSet.Items)
    {
        if (item.Column_Two == "Found")
        {
            //do something
        }
        else
        {
            //do something else
        }
    }
}
else
{
    //probably a binary file etc save it
    scrapeResult.save(context.Server.MapPath("~/results/" + scrapeResult.Filename));
}

L'exemple ci-dessus montre comment parcourir en boucle tous les résultats de la classe de jeu de données et effectuer des actions spécifiques en fonction de la valeur du paramètre. Column_Two propriété. 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 d’être disponible. saved.

Méthodes et propriétés de ScrapeResult

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

  • string Extension - obtient l'extension de tout fichier résultant de la suppression.
  • string Filename - récupère le nom de fichier de tout fichier résultant de la suppression.
  • T FromJSON<T>() - convertit tout fichier JSON résultant de la récupération dans le type spécifié.
  • string ToString() - convertit tout fichier résultant de la récupération en un string.
  • T FromXML<T>() - convertit tout fichier XML résultant de la récupération dans le type spécifié.
  • boolean Save(string 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 ASP.NET est de télécharger les résultats pour un extrait du éraflures Web Page, save le fichier que vous rencontrez un problème à un emplacement accessible, puis passez le chemin de ce fichier au constructeur de la classe ScrapeResult. Cela vous permet de déboguer votre gestionnaire sans avoir à refaire une nouvelle opération à chaque fois, comme indiqué ci-dessous.

ScrapeResult scrapeResult = new 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 également modifier le statut d'un scrap, en démarrant, en arrêtant ou en désactivant un scrap, si nécessaire. Ceci est montré dans l'exemple ci-dessous en passant l'ID du scrap avec l'état de scrap souhaité fourni par le ScrapeStatus enum à la SetScrapeStatus méthode.

GrabzItScrapeClient client = new GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
GrabzItScrape[] myScrapes = client.GetScrapes();
if (myScrapes.Length == 0)
{
    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, ScrapeStatus.Start);
if (myScrapes[0].Results.Length > 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

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

  • GrabzItScrape[] GetScrapes() - renvoie toutes les notes de l'utilisateur, ce qui inclut les résultats de la recherche sous forme de tableau d'objets GrabzItScrape.
  • GrabzItScrape GetScrape(string id) - retourne un objet GrabzItScrape représentant le scrap souhaité.
  • bool SetScrapeProperty(string id, IProperty property) - définit le propriété d'une éraflure et retourne vrai en cas de succès.
  • bool SetScrapeStatus(string id, ScrapeStatus status) - définit le statut d'un scrap et renvoie true en cas de succès.
  • bool SendResult(string id, string 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 (string proxyUrl) - définit le serveur proxy local à utiliser pour toutes les demandes.