כלים ללכידה ולהמרה של האינטרנט

ממשק API של מגרד רשת עבור ASP.NET

ממשק API של ASP.NET Scraper

קודם כל להורדה ממשק ה- 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

להלן כל השיטות והתכונות של מחלקת ScrapeResult שניתן להשתמש בהן לעיבוד תוצאות הגרד.

Debugging

הדרך הטובה ביותר לבצע ניפוי באגים עם מטפל 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

להלן כל השיטות והתכונות של מחלקת GrabzItScrapeClient בהן ניתן להשתמש כדי לשלוט על שריטות.

  • SetLocalProxy (string proxyUrl) - מגדיר את שרת ה- Proxy המקומי לשימוש בכל הבקשות.