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

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.

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

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

ডিবাগ করা

আপনার এএসপি.এনইটি হ্যান্ডলারটি ডিবাগ করার সর্বোত্তম উপায় হ'ল এটি থেকে স্ক্র্যাপের জন্য ফলাফলগুলি ডাউনলোড করা ওয়েব স্ক্র্যাপ পাতা, 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/");
}
//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 পদ্ধতি এবং বৈশিষ্ট্য

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

  • SetLocalProxy (string proxyUrl) - সমস্ত অনুরোধের জন্য ব্যবহারের জন্য স্থানীয় প্রক্সি সার্ভার সেট করে।