ওয়েব ক্যাপচার এবং রূপান্তর করার সরঞ্জামসমূহ

ASP.NET এর জন্য ওয়েব স্ক্র্যাপার এপিআই ASP.NET স্ক্র্যাপার এপিআই

প্রথম সব ডাউনলোড শুরু করার জন্য নমুনা ওয়েব প্রকল্পে অবস্থিত হ্যান্ডেলআরএক্সএক্স এবং এএসপি.এনইটি-র ওয়েব স্ক্র্যাপার এপিআই পরীক্ষা করুন।

প্রক্রিয়া স্ক্র্যাপড ডেটা

স্ক্র্যাপড ডেটা প্রক্রিয়া করার সহজতম উপায় হ'ল JSON বা XML অবজেক্ট হিসাবে ডেটা অ্যাক্সেস করা, কারণ এটি সহজে ডেটা ম্যানিপুলেটেড এবং কোয়েরি করতে সক্ষম করে। JSON নিম্নলিখিত সাধারণ ফর্ম্যাটে অবজেক্ট বৈশিষ্ট্য হিসাবে ডেটাসেট নাম সহ কাঠামোযুক্ত হবে, নিজেই প্রতিটি কলামের নামের সাথে অন্য একটি বৈশিষ্ট্য হিসাবে আইটেমের অ্যারে ধারণ করে।

{
  "Items": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

সবার আগে এটি অবশ্যই মনে রাখতে হবে যে হ্যান্ডলারটি সমস্ত স্ক্র্যাপড ডেটা প্রেরণ করা হবে, যার মধ্যে এমন ডেটা অন্তর্ভুক্ত থাকতে পারে যা জেএসএন বা এক্সএমএল অবজেক্টগুলিতে রূপান্তর করতে পারে না। সুতরাং প্রক্রিয়া করার আগে আপনি যে ধরণের ডেটা গ্রহণ করছেন তা অবশ্যই পরীক্ষা করা উচিত।

তবে এএসপি.এনইটি এপিআই এর সাথে জেএসএন বা এক্সএমএল ফাইলগুলি পড়ার জন্য একটি অতিরিক্ত পদক্ষেপের প্রয়োজন, যেখানে ক্লাসগুলি তৈরি করা হয় যা প্রত্যাশিত ডেটা কাঠামোর সাথে মেলে। এর উদাহরণ নীচে দেখানো হয়েছে উপরোক্ত JSON ডেটা কাঠামো ধরে রাখতে দুটি শ্রেণি সংজ্ঞা তৈরি করা হয়েছিল।

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

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

এই ক্লাসগুলি এখন একটি JSON ফাইল রূপান্তর করতে ব্যবহৃত হয় intওএ ব্যবহারযোগ্য অবজেক্ট স্ট্রাকচার। নীচের স্ক্র্যাপআরসাল্ট কনস্ট্রাক্টরের উদাহরণে এইচটিটিপিআরকুয়েস্ট ক্লাসটি পাচ্ছে, তবে এটি এএসপি.নেট এমভিসি ওয়েব প্রকল্পগুলির সাথে সামঞ্জস্যপূর্ণ করতে এটি এইচটিপিআরকুয়েস্টবেস শ্রেণিকেও গ্রহণ করে।

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ফলাফল ডিরেক্টরিতে d। স্ক্র্যাপআরসাল্ট শ্রেণি যখন গ্রাবাজিট সার্ভার থেকে সমস্ত পোস্ট করা ফাইলের উত্স সৃষ্টি করে তা নিশ্চিত করার চেষ্টা করে তবে ফাইলগুলির সম্প্রসারণটিও তাদের পরীক্ষা করার আগে পরীক্ষা করা উচিত While saved.

স্ক্র্যাপেরসাল্ট পদ্ধতি এবং বৈশিষ্ট্য

স্ক্র্যাপআরসাল্ট শ্রেণীর সমস্ত পদ্ধতি এবং বৈশিষ্ট্য যা স্ক্র্যাপ ফলাফলগুলি প্রক্রিয়া করতে ব্যবহৃত হতে পারে তার নীচে তালিকাভুক্ত।

  • string Extension - স্ক্র্যাপের ফলে যে কোনও ফাইলের এক্সটেনশন পায়।
  • string Filename - স্ক্র্যাপের ফলে যে কোনও ফাইলের ফাইলের নাম পাওয়া যায়।
  • T FromJSON<T>() - স্ক্র্যাপের ফলে যে কোনও JSON ফাইলকে নির্দিষ্ট ধরণের রূপান্তর করে।
  • string ToString() - স্ক্র্যাপ থেকে প্রাপ্ত যে কোনও ফাইলকে a তে রূপান্তর করে string.
  • T FromXML<T>() - স্ক্র্যাপ থেকে প্রাপ্ত কোনও এক্সএমএল ফাইলকে নির্দিষ্ট ধরণের রূপান্তর করে।
  • boolean Save(string path) - saveস্ক্র্যাপের ফলে যে কোনও ফাইলই সফল হয় যদি সত্য হয় returns

ডিবাগ করা

আপনার এএসপি.এনইটি হ্যান্ডলারটি ডিবাগ করার সর্বোত্তম উপায় হ'ল এটি থেকে স্ক্র্যাপের জন্য ফলাফলগুলি ডাউনলোড করা ওয়েব স্ক্র্যাপ পাতা, save আপনার অ্যাক্সেসযোগ্য স্থানে যে ফাইলটির সমস্যা হচ্ছে এবং তারপরে স্ক্র্যাপেরেসাল্ট ক্লাসের কনস্ট্রাক্টরের কাছে সেই ফাইলটির পথটি পাস করুন। নীচে প্রদর্শিত হিসাবে এটি আপনাকে প্রতিবার নতুন স্ক্র্যাপ না করেই আপনার হ্যান্ডলারটি ডিবাগ করতে দেয়।

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

#the rest of your handler code remains the same

একটি স্ক্র্যাপ নিয়ন্ত্রণ করা

গ্র্যাবিজআইটি'র ওয়েব স্ক্র্যাপার এপিআইয়ের সাহায্যে আপনি স্ক্র্যাপের সেই স্থিতিটি পরিবর্তন করে শুরু করতে, থামাতে বা প্রয়োজন অনুযায়ী স্ক্র্যাপ অক্ষম করতেও পারেন। এটি নীচের উদাহরণে স্ক্র্যাপের আইডিটি দ্বারা সরবরাহিত কাঙ্ক্ষিত স্ক্র্যাপের স্থিতির সাথে পাস করে দেখানো হয়েছে 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 GetScrape(string id) - কাঙ্ক্ষিত স্ক্র্যাপের প্রতিনিধিত্ব করে এমন একটি গ্র্যাবিটসক্র্যাপ বস্তু প্রদান করে।
  • bool SetScrapeProperty(string id, IProperty property) - সেট করে একটি স্ক্র্যাপ সম্পত্তি এবং সফল হলে সত্য ফিরে আসে।
  • bool SetScrapeStatus(string id, ScrapeStatus status) - স্ক্র্যাপের স্থিতি নির্ধারণ করে এবং সফল হলে সত্যটি ফেরত দেয়।
  • bool SendResult(string id, string resultId) - একটি স্ক্র্যাপের ফলাফল পুনরায় পাঠায় এবং সফল হলে সত্য ফিরে আসে।
    • স্ক্র্যাপ আইডি এবং ফলাফল আইডিটি getScrape পদ্ধতি থেকে পাওয়া যাবে।
  • SetLocalProxy (string proxyUrl) - সমস্ত অনুরোধের জন্য ব্যবহারের জন্য স্থানীয় প্রক্সি সার্ভার সেট করে।