কম্পিউটার টিউটোরিয়াল

ডেটা-স্ক্র্যাপিং টুল ব্যবহার করে ওয়েবপেজ থেকে ডেটা এক্সট্রাক্ট করার পদ্ধতি

আপনি যদি ওয়েবপেজ থেকে কপি-পেস্ট করে ম্যানুয়ালি স্প্রেডশিটে রাখছেন, তবে আপনি হয় ডেটা স্ক্র্যাপিং (ওয়েব স্ক্র্যাপিং) কী সেটি জানেন না, অথবা জানলেও কোডিং শিখে কয়েক ঘণ্টা বাঁচানোর ধারণায় আগ্রহী নন।

যা হোক, নো-কোড ডেটা-স্ক্র্যাপিং টুলগুলো আছে যা আপনাকে সাহায্য করতে পারে, এবং Data Miner-এর Chrome এক্সটেনশন 그중 একটি বেশি ইন্টিউইটিভ অপশন। আপনি যদি ভাগ্যবান হন, তবে আপনি যে টাস্ক করার চেষ্টা করছেন সেটি টুলের রেসিপি বইতে ইতিমধ্যে থাকতে পারে, এবং আপনাকে নিজের তৈরি করার পয়েন্ট-অ্যান্ড-ক্লিক স্টেপসও ফলো করতে হবে না।

Data Miner কীভাবে কাজ করে?

Data Miner আপনাকে ওয়েবপেজ থেকে ডেটা বের করে সুন্দর ফরম্যাট করা Excel/CSV ফাইলে দিতে সাহায্য করে পেজের টেক্সট লুকিয়ে। এর মানে আপনাকে কমপক্ষে HTML-এ কমফোর্টেবল থাকতে হবে কিছু প্যাটার্ন রিকগ্নাইজ করার জন্য, কিন্তু কিছু এক্সটেনসিভ নয়। অ্যাডভান্সড HTML এবং/অথবা JavaScript স্কিল কিছু টাস্কে নিশ্চিত সাহায্য করবে কিন্তু অধিকাংশ জিনিসের জন্য আবশ্যক নয়। আপনার কাছে কমপক্ষে বেসিক স্প্রেডশিট স্কিল থাকা উচিত যাতে আপনার আউটপুট ক্লিন ও অর্গানাইজড হয়।

১. Data Miner সেট আপ করুন

Chrome বা অন্য Chromium ব্রাউজার ব্যবহার করে এক্সটেনশন ইনস্টল করুন। এক্সটেনশনের পিকঅ্যাক্স আইকন আপনার টুলবারে দেখাবে, এবং সেটিতে ক্লিক করলে আপনাকে একটি পেজে নিয়ে যাবে যেখানে আপনি একাউন্ট সেট আপ করতে পারেন। ফ্রি ভার্সন মাসে ৫০০ স্ক্র্যাপ দেয়, যা আপনার জন্য যথেষ্ট হয়তো যদি না এটি আপনি প্রতিদিন করেন।

২. ডেটা লোড করুন

প্রথমে, আপনি যে পেজ থেকে ডেটা এক্সট্রাক্ট করতে চান সেখানে নেভিগেট করুন। আপনার যদি একাধিক পেজ ডেটা থাকে বা কিছু বাটনের পিছনে লুকিয়ে থাকে, সেটি ঠিক আছে—সেগুলো হ্যান্ডেল করার উপায় আছে। ফিলহাল, আপনার কাছে একটি রিপ্রেজেন্টেটিভ স্যামপল থাকতে হবে যাতে প্রোগ্রামটি বুঝতে পারে কী খুঁজতে হবে।

৩. রেসিপি চেক করুন

Data Miner খুলুন এবং "Public" ট্যাবে এক্সিস্টিং রেসিপি চেক করুন। আপনি যদি একটি পপুলার সাইটে থাকেন, তবে কেউ ইতিমধ্যে আপনার কাঙ্ক্ষিত ডেটা পাওয়ার প্রসেস তৈরি করে থাকতে পারে, যা আপনার অনেক সময় বাঁচাবে। Google, Amazon, এবং Twitter-এর মতো সাইটের জন্য অনেক রেসিপি উপলব্ধ যা আপনাকে ইনস্ট্যান্টলি লিংক, প্রাইস, টেক্সট, এবং অন্যান্য ডেটা ডাউনলোড করতে সাহায্য করে। আপনি "Run" বাটনে ক্লিক করে রেসিপি টেস্ট করতে পারেন Data Miner যে স্প্রেডশিট জেনারেট করবে তার প্রিভিউ দেখতে। আপনি "Edit" বাটনে ক্লিক করে এক্সিস্টিং রেসিপি আপনার প্রয়োজনে ফিট করতে টweak করতে পারেন।

৪. পেজ টাইপ

ঠিক আছে, কোনো প্রিমেড রেসিপি আপনার জন্য কাজ করেনি। চিন্তা নেই, আপনি নিজের তৈরি করতে পারেন। "New Recipe" বাটনে ক্লিক করুন শুরুতে।

আপনার প্রথম চয়েস হবে "List Page" বা "Detail Page"।

"List Page" সিলেক্ট করুন যদি আপনি একটি পেজ থেকে মাল্টিপল রো ডেটা পেতে চান। উদাহরণস্বরূপ, আপনি প্রতিটি সার্চ রেজাল্টের লিংক ও পেজ টাইটেল ডাউনলোড করতে চান, বা একটি ফিডে পোস্টের তারিখ ও কন্টেন্ট পেতে চান। এটি সবচেয়ে কমন টাইপ এবং আমরা এখানে ডেমো হিসেবে এটি ব্যবহার করব। (Detail page-এর স্টেপসও প্রায় একই।)

"Detail Page" সিলেক্ট করুন যদি এক পেজে একটি জিনিসের সম্পর্কে অনেক আলাদা ইনফরমেশন থাকে—যেমন একটি প্রোডাক্ট পেজ, যেখানে আপনাকে এর প্রাইস, ডেসক্রিপশন, লিংক, এবং রেটিং গ্র্যাব করে একটি সিঙ্গেল রোতে রাখতে হবে।

৫. আপনার রো বানান

"Find" বাটনে হিট করুন এবং আপনার মাউস মুভ করুন যতক্ষণ না ইয়েলো সিলেকশন বক্স আপনার ফাইনাল স্প্রেডশিটে একটি সিঙ্গেল এন্ট্রির জন্য যা যা ডেটা দরকার সেটি কভার করে। উদাহরণস্বরূপ, সার্চ রেজাল্ট ডাউনলোড করতে চাইলে আপনাকে একটি পর্যাপ্ত বড় এরিয়া হাইলাইট করতে হবে যাতে টাইটেল, URL, এবং ডেসক্রিপশন ইনক্লুড থাকে, যেগুলো পরবর্তী স্টেপে আলাদা কলামে রাখা যাবে। আপনার সিলেকশন করতে, Shift কি প্রেস করুন। ভুলে ক্লিক করলে চিন্তা নেই; Data Miner আপনার সকল রেসিপি প্রগ্রেস সেভ করে রাখে যদি আপনি পেজ থেকে নেভিগেট বায়ে যান।

আপনি তখন "Element's Classes" বা "HTML Element Type" সেকশনে কমপক্ষে একটি বক্স চেক করতে চাবেন। আইডিয়ালি, আপনি দেখবেন সিলেকশন রেপ্লিকেট হয়ে যাচ্ছে পেজের সব এলিমেন্ট কভার করতে যা আপনি সিলেক্ট করেছেন তার সেম ক্যাটেগরিতে।

আপনি যদি খুঁজে পান সিলেক্টর সব কিছু কভার করছে না যা আপনার দরকার, শুধু একটি এলিমেন্ট সিলেক্ট করে "Select Parent" প্রেস করে দেখুন। এটি বক্সটি বড় করবে এবং সম্ভবত আপনার প্রয়োজন সব ক্যাপচার করবে। না হলে, আপনাকে HTML-এ একটু গভীরে যেতে হবে এবং আপনার প্রয়োজনীয় এলিমেন্টগুলোর ক্লাস ও টাইপ আইডেন্টিফাই করতে হবে। সন্দেহ হলে, "Select Parent" হিট করুন যতক্ষণ না বক্স যতটা বড় হতে পারে এক লিস্ট এন্ট্রির চেয়ে বেশি কভার না করে, কারণ এটি কলাম সিলেক্ট করার সময় আপনাকে বেশি ফ্লেক্সিবিলিটি দেবে।

Data Miner আপনাকে "View Element's HTML" অপশন দেয় বটমে এবং কাস্টোম সিলেক্টর টাইপ করার সুবিধাও। আপনি যদি চান, "product" ক্লাসের সব লিংক পেজ থেকে গ্র্যাব করতে, আপনি শুধু a.product টাইপ করতে পারেন। এখানেই কিছু বেসিক HTML/CSS নলেজ খুব কাজে আসবে।

মেইন রো মেনুতে ফিরে আসলেই, আপনাকে "Row Count" দেখতে হবে আপনার রেসিপি স্প্রেডশিটে কত এন্ট্রি তৈরি করবে সেটির নম্বরসহ। যদি সব কিছু ক্যাচ না করে, আপনার রো সিলেকশন ডাবল চেক করতে হবে।

৬. আপনার ডেটা কলামে ভাগ করুন

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

একটি কলাম বানাতে, শুধু এটির একটি নাম দিন এবং Find বাটন ব্যবহার করুন যা এক্সট্রাক্ট করতে চান সিলেক্ট করতে, ঠিক রোয়ের মতো। সবচেয়ে কমন ডেটা হবে টেক্সট, URL, বা ইমেজ URL। টেক্সট লিংকের ওপর হোভার করে URL পাওয়া কিছুটা ট্রিকি হতে পারে; আপনাকে "select parent" প্রেস করতে হতে পারে যতক্ষণ না এলিমেন্ট টাইপ <a> পাওয়া যায়, যা লিংক-এর HTML ট্যাগ।

আপনার কলামে সঠিক ধরনের ডেটা আছে কিনা নিশ্চিত করতে, প্রতিটি কলামের নামের ডানে আই আইকনে প্রেস করুন, নম্বরটি যা দেখাচ্ছে কত কলাম সিলেক্ট করা হয়েছে। এটি সেই কলামের প্রতিটি রো এন্ট্রির প্রিভিউ দেখাবে। কিছু অফ হলে, ফিরে যান এবং রো আইডেন্টিফাই করার জন্য আপনি যেসব ট্যাগ ও টাইপ বেছে নিয়েছিল সেগুলো টweak করুন। HTML ভিউওয়ার খুলে আপনার কাঙ্ক্ষিত ডেটার সাথে জড়িত প্যাটার্ন চেক করতে ভয় করবেন না।

৭. Data Miner-কে বলুন কীভাবে পরবর্তী পেজে যাবে

আপনার এক্সট্রাক্ট করার জন্য একাধিক পেজ ডেটা থাকলে, আপনি হয়তো প্রতিটি পেজে ক্লিক থ্রু করে রেসিপি বারবার রান করতে চান না। এড়াতে, শুধু Data Miner-কে বলুন নেভিগেশন বাটনটি কোথায় আছে যেটি ক্লিক করলে পরবর্তী পেজে যাবে। সাবধান থাকুন "Page 2"-এর মতো কিছুতে ক্লিক করতে বলবেন না, কারণ তাহলে সেটি শুধু Page 2-এ যাবে। আবার নিশ্চিত করুন আপনি একটি <a> এলিমেন্ট সিলেক্ট করছেন, এবং Test Navigation বাটন ব্যবহার করুন নিশ্চিত করতে এটি কাজ করছে কিনা।

৮. Data Miner-কে বলুন কোথায় ক্লিক বা স্ক্রোল করবে ডেটা লোড করার জন্য

কিছু পেজ ডেটা লোড করে না যতক্ষণ না আপনি কিছুতে ক্লিক করেন বা স্ক্রোল ডাউন করেন। সৌভাগ্যয়, Data Miner এগুলোও করতে পারে! টপে "Find" টুল ব্যবহার করুন (আপনি এখনো এইতে এক্সপার্ট হওয়া উচিত) যেই এলিমেন্ট ম্যানিপুলেট করতে হবে সেটি সিলেক্ট করুন, তারপর সিলেক্টরকে উপযুক্ত বক্সে রাখুন এবং টেস্ট করুন নিশ্চিত করতে এটি কাজ করছে।

একজাক্টলি কোন সিলেক্টর এলিমেন্ট বা ইনফিনিট স্ক্রোলবার এক্টিভেট করবে সেটি বের করা ট্রিকি হতে পারে, কিন্তু বেসিক HTML নলেজ এবং ট্রায়-এরর আপনাকে এখানেও দুরে নিয়ে যাবে। আপনাকে যা ম্যানিপুলেট করতে হবে অধিকাংশ জাভাস্ক্রিপ্ট-বেসড, কিন্তু Data Miner-কে শুধু সেই অ্যাকশনের সাথে জড়িত CSS সিলেক্টর জানতে হয় এক্টিভেট করতে, তাই অধিকাংশ কেসে আপনাকে কোনো কোডে হাত দিতে হবে না।

পরবর্তী স্টেপ আপনাকে কাস্টোম JS যোগ করতে দেয় প্রায় যা ইচ্ছে করতে, কিন্তু সেটি কফি অ্যাডভান্সড এবং বেসিক স্ক্র্যাপিং-এর চেয়ে বাইরে।

৯. রেসিপি সেভ এবং রান করুন

অভিনন্দন! এখন দেখার সময় সব ঠিকমতো আসছে কিনা। আপনি যে পেজে আছেন সেটিতে রেসিপি রান করুন এবং প্রিভিউ চেক করুন আপনার রো ও কলামগুলো সঠিক কাজ করছে কিনা। না হলে, ফিরে যান এবং রেসিপি এডিট করুন।

সব কিছু ঠিকমতো আচরণ করলে, "Next Page" বাটন ব্যবহার করুন স্ক্র্যাপারকে বলতে কত পেজ ক্রল করবে এবং কত ফাস্ট যাবে। (খুব ফাস্ট গেলে সিস্টেম আপনাকে বট বলে ফ্ল্যাগ করতে পারে।)

আপনার প্রয়োজনীয় সকল ডেটা পাওয়ার পর, আপনি চাইতে পারেন কোন ফাইল ফরম্যাটে ডাউনলোড করবেন।

আমার সমস্যা হচ্ছে; আরো সহজ উপায় আছে কি?

Data Miner প্রোগ্রাম আপনার জন্য কাজ না করলে, আরও অনেক ডেটা-স্ক্র্যাপিং টুল আছে: ParseHub, Scraper, Octoparse, Import.io, VisualScraper, ইত্যাদি। उनमें से কিছু আরও ইন্টিউইটিভ ইন্টারফেস এবং বেশি অটোমেশন দিতে পারে, কিন্তু আপনাকে কমপক্ষে HTML এবং ওয়েব কীভাবে অর্গানাইজড সেটি সম্পর্কে একটু জানতে হবে। Data Miner যেটা বেগিনারদের জন্য স্পেশাল করে তোলে সেটি হলো এর ক্রাউডসোর্সড রেসিপি লাইব্রেরি, যা আপনাকে কোডের সাথে অতি মাইনর এনকাউন্টার থেকেও বাঁচাতে পারে। সেটি, এর ফেইরলি জেনেরাস ফ্রি মাসিক স্ক্র্যাপ প্যাকেজের সাথে কম্বাইন হয়ে, অধিকাংশ প্রয়োজনের জন্য একটি ভালো ডিসেন্ট টুল বানায়।

  1. এক্সেল মাস্টারি: একাধিক ক্রাইটেরিয়া দিয়ে টেবিল ডেটা দক্ষতার সাথে এক্সট্র্যাক্ট করুন

  2. এক্সেল ডেটা ভ্যালিডেশন মাস্টার করুন: অন্য শিট থেকে লিস্ট ব্যবহার করার ৬ প্রমাণিত পদ্ধতি

  3. পিডিএফ ডেটাকে এক্সেলে কার্যকরভাবে কনভার্ট করার ৪ প্রমাণিত পদ্ধতি

  4. দ্রুত গাইড: XML থেকে এক্সেলে ডেটা আনার ২টি সহজ ধাপ