קודם כל להורדה ממשק ה- API של מגרד האינטרנט עבור ASP.NET ובדוק את ה- handler.ashx שנמצא בפרויקט האינטרנט לדוגמה כדי להתחיל.
הדרך הקלה ביותר לעבד נתונים מגרדים היא לגשת לנתונים כאובייקט JSON או XML, מכיוון שהדבר מאפשר לתפעל ולשאול בקלות את הנתונים. ה- JSON יבנה בפורמט הכללי הבא עם שם הנתונים כמאפיין האובייקט, עצמו מכיל מערך של אובייקטים עם כל שם העמודה כתכונה אחרת.
{ "Items": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { "Column_One": "http://dfadsdsa.com/", "Column_Two": "Missing" }] }
ראשית כל צריך לזכור כי המטפל ישלח את כל הנתונים הגרוטים, אשר עשויים לכלול נתונים שלא ניתן להמיר לאובייקטים JSON או XML. לכן יש לבדוק את סוג הנתונים שאתה מקבל לפני שעובדים אותם.
עם זאת עם ה- ASP.NET API, יש צורך בצעד נוסף בכדי לקרוא קבצי JSON או XML, בהם נוצרים מחלקות התואמות את מבנה הנתונים הצפוי. דוגמה לכך מוצגת להלן שתי נוצרו שתי הגדרות מחלקה המחזיקות במבנה הנתונים של JSON לעיל.
public class DataSet { public List<Item> Items; } public class Item { public string Column_One; public string Column_Two; }
שיעורים אלה משמשים כעת להמרת קובץ JSON intמבנה אובייקטים שמיש. בדוגמה להלן קבלן הבנייה של ScrapeResult למטה מקבל את מחלקת HttpRequest, אולם הוא גם מקבל את מחלקת HttpRequestBase בכדי להפוך אותו לתואם עם פרויקטים ברשת 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)); }
הדוגמה שלמעלה מציגה כיצד לעבור בין כל תוצאות מחלקת הנתונים ולבצע פעולות ספציפיות בהתאם לערך של ה- Column_Two
תכונה. כמו כן אם הקובץ שקיבל המטפל אינו קובץ JSON אז הוא פשוט saveמדריך לתוצאות. בעוד שכיתת ScrapeResult אכן מנסה להבטיח שכל הקבצים שפורסמו מקורם בשרתים של GrabzIt, יש לבדוק גם את סיומת הקבצים לפני שהם saved.
להלן כל השיטות והתכונות של מחלקת ScrapeResult שניתן להשתמש בהן לעיבוד תוצאות הגרד.
הדרך הטובה ביותר לבצע ניפוי באגים עם מטפל ASP.NET שלך היא להוריד את התוצאות עבור גירוד מה- שריטות אינטרנט דף, save את הקובץ שאתה נתקל בו במיקום נגיש ואז העביר את הנתיב של הקובץ למבנה של מחלקת ScrapeResult. זה מאפשר לך לבצע ניפוי של המטפל שלך מבלי שתצטרך לבצע גרד חדש בכל פעם, כמוצג להלן.
ScrapeResult scrapeResult = new ScrapeResult("data.json"); #the rest of your handler code remains the same
עם ממשק ה- API של GrabzIt Web Scraper אתה יכול גם לשנות את הסטטוס של גירוד, להתחיל, לעצור או להשבית גרד לפי הצורך. זה מוצג בדוגמה למטה על ידי העברת תעודת הזהות של הגרד יחד עם מצב הגרד הרצוי שסופק על ידי ScrapeStatus
enum ל SetScrapeStatus
שִׁיטָה.
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); }
להלן כל השיטות והתכונות של מחלקת GrabzItScrapeClient בהן ניתן להשתמש כדי לשלוט על שריטות.