أدوات لالتقاط وتحويل الويب

API Scraper Web لـ ASP.NET ASP.NET Scraper API

أولا بإمكانك تحميله Web 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 التي يمكن استخدامها لمعالجة نتائج scrape.

  • string Extension - يحصل على امتداد أي ملف ناتج عن الكشط.
  • string Filename - يحصل على اسم ملف أي ملف ناتج عن الكشط.
  • T FromJSON<T>() - يحول أي ملف JSON ناتج عن الكشط إلى النوع المحدد.
  • string ToString() - يحول أي ملف ناتج عن الكشط إلى ملف string.
  • T FromXML<T>() - يحول أي ملف XML ناتج عن الكشط إلى النوع المحدد.
  • boolean Save(string path) - saveأي ملف ناتج عن الكشط ، يعود صحيحًا إذا نجح.

التصحيح

أفضل طريقة لتصحيح معالج ASP.NET الخاص بك هي تنزيل النتائج من أجل كشط من الورطات على شبكة الإنترنت صفحة، save الملف الذي تواجه مشكلة في موقع يمكن الوصول إليه ، ثم تمرير مسار هذا الملف إلى مُنشئ فئة ScrapeResult. يتيح لك ذلك تصحيح معالجك دون الاضطرار إلى القيام بكشط جديد في كل مرة ، كما هو موضح أدناه.

ScrapeResult scrapeResult = new ScrapeResult("data.json");

#the rest of your handler code remains the same

السيطرة على كشط

من خلال GrabzIt's Web Scraper API ، يمكنك أيضًا تغيير حالة الكشط أو بدء أو إيقاف أو تعطيل الكشط حسب الحاجة. يظهر هذا في المثال أدناه بتمرير معرف الكشط إلى جانب حالة الكشط المرغوبة التي يوفرها ScrapeStatus التعداد ل 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.aspx");
}
//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 التي يمكن استخدامها للسيطرة على الخردة.

  • GrabzItScrape[] GetScrapes() - يُرجع كل مستخدمي الخردة ، والذي يتضمن نتائج الكشط كصفيف لكائنات GrabzItScrape.
  • GrabzItScrape GetScrape(string id) - إرجاع كائن GrabzItScrape الذي يمثل الكشط المرغوب.
  • bool SetScrapeProperty(string id, IProperty property) - يحدد خاصية كشط وتعود صحيحا إذا نجحت.
  • bool SetScrapeStatus(string id, ScrapeStatus status) - يحدد حالة الكشط ويعود صحيحًا إذا نجح.
  • bool SendResult(string id, string resultId) - يعيد إرسال نتيجة الخردة ويعود صحيحًا إذا نجح.
    • يمكن العثور على معرف الكشط ومعرّف النتيجة من أسلوب GetScrape.
  • SetLocalProxy (string proxyUrl) - تعيين خادم الوكيل المحلي ليتم استخدامه لجميع الطلبات.