Przede wszystkim pobieranie API Web Scraper API dla ASP.NET i sprawdź, aby rozpocząć handler.ashx znajdujący się w przykładowym projekcie WWW.
Najłatwiejszym sposobem przetwarzania zeskrobanych danych jest uzyskanie dostępu do danych jako obiekt JSON lub XML, ponieważ umożliwia to łatwą manipulację danymi i ich wyszukiwanie. JSON będzie miał następującą strukturę ogólną z nazwą zestawu danych jako atrybutem obiektu, sam zawierający tablicę obiektów z nazwą każdej kolumny jako innym atrybutem.
{ "Items": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { "Column_One": "http://dfadsdsa.com/", "Column_Two": "Missing" }] }
Przede wszystkim należy pamiętać, że program obsługi otrzyma wszystkie zeskrobane dane, które mogą obejmować dane, których nie można przekonwertować na obiekty JSON lub XML. Dlatego rodzaj otrzymywanych danych należy sprawdzić przed przetworzeniem.
Jednak w przypadku interfejsu API ASP.NET wymagany jest dodatkowy krok w celu odczytania plików JSON lub XML, w których tworzone są klasy pasujące do oczekiwanej struktury danych. Przykład tego pokazano poniżej, w którym utworzono dwie definicje klas do przechowywania powyższej struktury danych JSON.
public class DataSet { public List<Item> Items; } public class Item { public string Column_One; public string Column_Two; }
Klasy te są teraz używane do konwersji pliku JSON into użyteczna struktura obiektu. W poniższym przykładzie konstruktor ScrapeResult poniżej odbiera klasę HttpRequest, jednak akceptuje również klasę HttpRequestBase, aby była kompatybilna z projektami sieciowymi 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)); }
Powyższy przykład pokazuje, jak przeglądać wszystkie wyniki klasy zestawu danych i wykonywać określone działania w zależności od wartości parametru Column_Two
własność. Również jeśli plik otrzymany przez program obsługi nie jest plikiem JSON, to jest po prostu saved do katalogu wyników. Podczas gdy klasa ScrapeResult stara się zapewnić, że wszystkie opublikowane pliki pochodzą z serwerów GrabzIt, rozszerzenie plików należy również sprawdzić, zanim zostaną saved.
Poniżej wymieniono wszystkie metody i właściwości klasy ScrapeResult, których można użyć do przetwarzania wyników zgarniania.
Najlepszym sposobem debugowania programu obsługi programu ASP.NET jest pobranie wyników skrobania z skrobaki z sieci strona, save plik, z którym masz problem, do dostępnej lokalizacji, a następnie przekaż ścieżkę tego pliku do konstruktora klasy ScrapeResult. Pozwala to na debugowanie programu obsługi bez konieczności wykonywania nowego skrobania za każdym razem, jak pokazano poniżej.
ScrapeResult scrapeResult = new ScrapeResult("data.json"); #the rest of your handler code remains the same
Z API Web Scraper API GrabzIt możesz również zmienić ten status scrape, uruchamiając, zatrzymując lub wyłączając scrape w razie potrzeby. Jest to pokazane w poniższym przykładzie poprzez przekazanie identyfikatora skrobania wraz z pożądanym statusem skrobania podanym przez ScrapeStatus
enum do SetScrapeStatus
Metoda.
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); }
Poniżej wymieniono wszystkie metody i właściwości klasy GrabzItScrapeClient, których można użyć do kontrolowania zadrapań.