Herşeyden önce indir ASP.NET için Web Sıyırıcı API'sını kullanın ve örnek web projesinde bulunan handler.ashx'i başlatmak için inceleyin.
Kazınmış verileri işlemenin en kolay yolu, verilere kolayca manipüle edilmesini ve sorgulanmasını sağladığı için verilere bir JSON veya XML nesnesi olarak erişmektir. JSON, aşağıdaki genel formatta, nesne özniteliği olarak veri kümesi adıyla ve kendisi de her bir sütun adının başka bir öznitelik olarak bulunduğu bir dizi nesnesi içeren yapılandırılacaktır.
{ "Items": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { "Column_One": "http://dfadsdsa.com/", "Column_Two": "Missing" }] }
Öncelikle, işleyicinin, JSON veya XML nesnelerine dönüştürülemeyen verileri içerebilecek tüm sıyrılmış veriler gönderileceği unutulmamalıdır. Bu nedenle, aldığınız veri türünün işlenmeden önce kontrol edilmesi gerekir.
Ancak ASP.NET API ile, beklenen veri yapısına uygun sınıfların oluşturulduğu JSON veya XML dosyalarını okumak için ek bir adım gerekir. Bunun bir örneği aşağıda gösterilmiştir ve yukarıdaki JSON veri yapısını elde etmek için iki sınıf tanımı oluşturulmuştur.
public class DataSet { public List<Item> Items; } public class Item { public string Column_One; public string Column_Two; }
Bu sınıflar artık bir JSON dosyasını dönüştürmek için kullanılıyor intkullanılabilir bir nesne yapısı. Aşağıdaki örnekte, aşağıdaki ScrapeResult yapıcısı, HttpRequest sınıfını alıyor, ancak ASP.NET MVC web projeleriyle uyumlu hale getirmek için HttpRequestBase sınıfını da kabul ediyor.
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)); }
Yukarıdaki örnek, veri kümesi sınıfının tüm sonuçları arasında nasıl bir döngü uygulanacağını ve Column_Two
özellik, mal mülk, emlak. Ayrıca, işleyici tarafından alınan dosya bir JSON dosyası değilse, o zaman sadece saved sonuç dizinine. ScrapeResult sınıfı, gönderilen tüm dosyaların GrabzIt sunucusundan kaynaklandığından emin olmaya çalışsa da, dosyaların uzantısı da önceden denetlenmelidir. saved.
Aşağıda, sıyrık sonuçlarını işlemek için kullanılabilecek ScrapeResult sınıfının tüm yöntemleri ve özellikleri listelenmiştir.
ASP.NET işleyicinizi hata ayıklamanın en iyi yolu, bir sıyrık için sonuçları indirmektir. web notları sayfa, save Sorunlu bir konuma sahip olduğunuz bir dosyaya gidin ve o dosyanın yolunu ScrapeResult sınıfının yapıcısına iletin. Bu, aşağıda gösterildiği gibi her seferinde yeni bir kazıma yapmak zorunda kalmadan işleyicinizi hata ayıklamanızı sağlar.
ScrapeResult scrapeResult = new ScrapeResult("data.json"); #the rest of your handler code remains the same
GrabzIt'ın Web Kazıyıcı API'sı ile, bir kazıma durumunu da gerektiği gibi kazıma işlemini başlatabilir, durdurabilir veya devre dışı bırakabilirsiniz. Bu, aşağıdaki örnekte, sıyırıcının kimliği, sağlayıcının sağladığı istenen sıyırma durumu ile birlikte geçerek gösterilir. ScrapeStatus
saymak SetScrapeStatus
yöntemi.
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); }
Aşağıda, GrabzItScrapeClient sınıfının sıyrıkları kontrol etmek için kullanılabilecek yöntem ve özelliklerinin tümü listelenmiştir.