Outils pour capturer et convertir le Web

API Web Scraper pour ASP.NET

API ASP.NET Scraper

Tout d'abord download 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.

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/");
}
//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.

  • SetLocalProxy (string proxyUrl) - définit le serveur proxy local à utiliser pour toutes les demandes.