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

GrabzIt সহ পিএইচপি স্ক্র্যাপার এপিআইপিএইচপি স্ক্র্যাপার এপিআই

আমাদের পিএইচপি স্ক্র্যাপার এপিআই গ্র্যাবজিট এর ওয়েব স্ক্র্যাপারের শক্তিটি আপনার অ্যাপ্লিকেশনটিতে যুক্ত করার অনুমতি দেয়। সাধারনত পিএইচপি স্ক্র্যাপিং অ্যাপ্লিকেশনগুলির দ্বারা প্রয়োগ করা সাধারণ এইচটিএমএল ডিওএম পার্সারের তুলনায় এটি অনেক ভাল সমাধান।

আপনার সাথে শুরু করতে হবে একটি স্ক্র্যাপ তৈরি করুন। তারপরে আপনার অ্যাপ্লিকেশনটিতে ওয়েবে বিশ্লেষণ করতে আপনাকে অবশ্যই তা করতে হবে ডাউনলোড পিএইচপি গ্রন্থাগার। শেষ পর্যন্ত, শুরু করার জন্য, ডাউনলোডের ভিতরে অবস্থিত উদাহরণ হ্যান্ডলারটি দেখুন।

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

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

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

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

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult();

if ($scrapeResult->getExtension() == 'json')
{
    $json = $scrapeResult->toJSON();
    foreach ($json->Dataset_Name as $obj)
    {
        if ($obj->Column_Two == "Found")
        {
            //do something
        }
        else
        {
            //do something else
        }
    }
}
else
{
    //probably a binary file etc save it
    $scrapeResult->save("results/".$scrapeResult->getFilename());
}

উপরের উদাহরণটি ডেটাসেটের সমস্ত ফলাফলের মধ্যে কীভাবে লুপ করবেন তা দেখায় Dataset_Name। তারপরে প্রতিটি ফলাফলের জন্য মানটির উপর নির্ভর করে একটি নির্দিষ্ট ক্রিয়া করুন action Column_Two অ্যাট্রিবিউট। এছাড়াও যদি হ্যান্ডলারের দ্বারা প্রাপ্ত ফাইলটি কোনও JSON ফাইল না হয় তবে তা ঠিক saveফলাফল ডিরেক্টরিতে d। যদিও স্ক্র্যাপআরসাল্ট শ্রেণি সমস্ত পোস্ট করা ফাইল গ্র্যাজআইটি সার্ভার থেকে উত্পন্ন হয়েছে তা নিশ্চিত করার চেষ্টা করে। ফাইলগুলির সম্প্রসারণের আগে তাদেরও পরীক্ষা করা উচিত saved.

স্ক্র্যাপেরসাল্ট পদ্ধতি

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

  • string getExtension() - স্ক্র্যাপের ফলে যে কোনও ফাইলের এক্সটেনশন পায়।
  • string getFilename() - স্ক্র্যাপের ফলে যে কোনও ফাইলের ফাইলের নাম পাওয়া যায়।
  • object toJSON() - স্ক্র্যাপের ফলে যে কোনও JSON ফাইলকে রূপান্তর করে intহে একটি বস্তু
  • string toString() - স্ক্র্যাপ থেকে প্রাপ্ত যে কোনও ফাইলকে a তে রূপান্তর করে string.
  • SimpleXMLElement toXML() - স্ক্র্যাপ থেকে পাওয়া কোনও এক্সএমএল ফাইলকে এক্সএমএল এলিমেন্টে রূপান্তর করে।
  • boolean save($path) - saveস্ক্র্যাপের ফলে যে কোনও ফাইলই সফল হয় যদি সত্য হয় returns

ডিবাগ করা

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

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

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

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

$client = new \GrabzIt\Scraper\GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret");
//Get all of our scrapes
$myScrapes = $client->GetScrapes();
if (empty($myScrapes))
{
    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, "Start");
if (count($myScrapes[0]->Results) > 0)
{
    //re-send first scrape result if it exists
    $client->SendResult($myScrapes[0]->ID, $myScrapes[0]->Results[0]->ID);
}

GrabzItScrapeClient পদ্ধতি এবং বৈশিষ্ট্য

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

  • GrabzItScrape[] GetScrapes() - ব্যবহারকারী স্ক্র্যাপের সমস্ত গ্র্যাবিজটস্ক্র্যাপ বস্তুর অ্যারে হিসাবে ফিরিয়ে দেয়।
  • GrabzItScrape GetScrape($id) - কাঙ্ক্ষিত স্ক্র্যাপের প্রতিনিধিত্ব করে এমন একটি গ্র্যাবিটসক্র্যাপ বস্তু প্রদান করে।
  • SetScrapeProperty($id, $property) - সেট করে একটি স্ক্র্যাপ সম্পত্তি এবং সফল হলে সত্য ফিরে আসে।
  • SetScrapeStatus($id, $status) - স্ক্র্যাপের স্থিতি ("স্টার্ট", ​​"থামুন", "সক্ষম", "অক্ষম করুন") সেট করে এবং সফল হলে সত্যটি ফেরত দেয়।
  • SendResult($id, $resultId) - একটি স্ক্র্যাপের ফলাফল পুনরায় পাঠায় এবং সফল হলে সত্য ফিরে আসে।
    • স্ক্র্যাপ আইডি এবং ফলাফল আইডিটি getScrape পদ্ধতি থেকে পাওয়া যাবে।
  • SetLocalProxy($proxyUrl) - সমস্ত অনুরোধের জন্য ব্যবহারের জন্য স্থানীয় প্রক্সি সার্ভার সেট করে।