ویب پر گرفت اور تبدیل کرنے کے اوزار

ASP.NET کیلئے ویب سکریپر API ASP.NET سکریپر API

سب سے پہلے ڈاؤن لوڈ، اتارنا شروع کرنے کے لئے نمونہ ویب پروجیکٹ میں واقع ہیلر آرشکس کا معائنہ اور ASP.NET کیلئے ویب سکریپر API۔

سکریپڈ ڈیٹا پر کارروائی کریں

سکریپڈ ڈیٹا پر کارروائی کرنے کا آسان ترین طریقہ یہ ہے کہ 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 فائلوں کو پڑھنے کے ل an ایک اضافی اقدام کی ضرورت ہوتی ہے ، جس میں کلاسز بنائی جاتی ہیں جو متوقع ڈیٹا ڈھانچے سے ملتی ہیں۔ اس کی ایک مثال ذیل میں دکھایا گیا ہے کہ مندرجہ بالا JSON ڈیٹا ڈھانچے کو برقرار رکھنے کے لئے دو کلاس تعریفیں تشکیل دی گئیں ہیں۔

public class DataSet
{
    public List<Item> Items;
}

public class Item
{
    public string Column_One;
    public string Column_Two;
}

یہ کلاسیں اب JSON فائل میں تبدیل کرنے کے لئے استعمال کی جاتی ہیں intOA استعمال کے قابل آبجیکٹ ڈھانچہ. ذیل میں سکریپ ریسولٹ کنسٹرکٹر کے نیچے مثال کے طور پر HttpRequest کلاس موصول ہورہا ہے ، تاہم یہ HSPPRequestBase کلاس کو بھی قبول کرتا ہے تاکہ اسے 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نتائج کی ڈائرکٹری سے ڈی۔ جبکہ سکریپ ریسلٹ کلاس یہ یقینی بنانے کی کوشش کرتی ہے کہ تمام پوسٹ فائلیں گربزٹ کے سرورز سے نکلیں ، فائلوں کی توسیع کی جانچ پڑتال بھی ان سے پہلے کی جانی چاہئے۔ saved.

سکریپ ریسلٹ کے طریقے اور خواص

سکریپ ریسلٹ کلاس کے تمام طریقوں اور خصوصیات کے نیچے درج ہیں جن کا استعمال سکریپ کے نتائج پر کارروائی کرنے کے لئے استعمال کیا جاسکتا ہے۔

  • string Extension - کھرچنی کے نتیجے میں کسی بھی فائل کی توسیع ملتی ہے۔
  • string Filename - کھرچنی کے نتیجے میں کسی بھی فائل کا فائل نام مل جاتا ہے۔
  • T FromJSON<T>() - سکریپ کے نتیجے میں کسی بھی JSON فائل کو مخصوص قسم میں تبدیل کرتا ہے۔
  • string ToString() - کھرچنے کے نتیجے میں کسی بھی فائل کو a میں تبدیل کرتا ہے string.
  • T FromXML<T>() - کھرچنے کے نتیجے میں کسی بھی XML فائل کو مخصوص قسم میں تبدیل کرتا ہے۔
  • boolean Save(string path) - saveکسی بھی فائل کو کھرچنے کے نتیجے میں ، اگر وہ کامیاب ہوجاتی ہے تو اس کی سچائی واپس آجاتی ہے۔

ٹھیک کرنا

اپنے ASP.NET ہینڈلر کو ڈیبگ کرنے کا بہترین طریقہ یہ ہے کہ نتائج کو اسکریپ کے لئے ڈاؤن لوڈ کریں ویب سکریپس صفحہ، save جس فائل سے آپ کو پریشانی کا سامنا کرنا پڑتا ہے وہ قابل رسائی مقام تک پہنچ جاتی ہے اور پھر اس فائل کا راستہ اس سکریپ ریسلٹ کلاس کے کنسٹرکٹر کے پاس کردیتی ہے۔ جیسا کہ ذیل میں دکھایا گیا ہے ، ہر بار نیا کھرچنا کئے بغیر آپ کو اپنے ہینڈلر کو ڈیبگ کرنے کی اجازت دیتا ہے۔

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

#the rest of your handler code remains the same

کھرچنا کو کنٹرول کرنا

GrabzIt کے ویب سکریپر API کے ذریعہ ، آپ کسی کھرچنی کی اس حیثیت کو بھی تبدیل کر سکتے ہیں ، شروع ہونے ، روکنے یا ضرورت کے مطابق کھرچنا کو غیر فعال کر سکتے ہیں۔ اس کو خراش کی شناخت کو مطلوبہ سکریپ حیثیت کے ساتھ ، جس نے فراہم کردہ ہے ، پاس کرکے ، ذیل کی مثال میں دکھایا گیا ہے 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.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 طریقے اور خواص

گرابزٹ اسکرائپ کلینٹ کلاس کے تمام طریقے اور خصوصیات درج ہیں جنہیں اسکریپس کو کنٹرول کرنے کے لئے استعمال کیا جاسکتا ہے۔

  • 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) - کھرچنا کے نتیجہ کو دوبارہ بھیجتا ہے اور اگر کامیاب ہوتا ہے تو سچ واپس آجاتا ہے۔
    • سکریپ آئی ڈی اور نتیجہ کی شناخت گیٹ اسکریپ کے طریقہ کار سے حاصل کی جاسکتی ہے۔
  • سیٹ لوکل پروسی (string پراکسی یو آر ایل) - مقامی درخواستوں کے سرور کو تمام درخواستوں کے استعمال کے ل sets مقرر کرتا ہے۔