পর্ব-১ এ আপনাদের হোমওয়ার্ক ছিল কিছু জিনিসপাতি নিয়ে নাড়াচাড়া করা; কারণ পাইথন শেখার সবচেয়ে গুরুত্বপূর্ণ ধাপ হল নিজে নিজে পাইথনের “ফিচারগুলো আবিষ্কার করা”। যাই হোক, এবার দেখি পর্ব-২ এর হোমওয়ার্কের স্টেটমেন্টগুলোর আউটপুটের অর্থ কি! daily_star
লিখে এন্টার চাপামাত্রই আউটপুটে iPython আপনাকে daily_star
এর ভ্যালু দেখাবে; যেটা হল <Response [200]>
।

আমাদের সাধারণ ভাষার জ্ঞান প্রয়োগ করে বুঝা যাচ্ছে যে, requests
লাইব্রেরি দিয়ে ডেইলি স্টার পত্রিকার সার্ভারে যে get
করার request করা হয়েছিল, তার উত্তরে একটি response বা উত্তর এসেছে। অতএব আমরা বলতে পারি, daily_star
হল একটি Response
। (প্রোগ্রামাররা অনেকসময় ভাব নেওয়ার জন্য বলে, Response
হল একটি ক্লাস, আরdaily_star
হল ওই ক্লাস থেকে বানানো অবজেক্ট)
এবার যদি আমরা dir(daily_star)
স্টেটমেন্টটি এক্সিকিউট করি (লিখে এন্টার চাপি বলার ইশ্মার্ট ভার্সন), তাহলে দেখতে পারব নিচের মত একটি ইয়াআআআআআ বিশাল লম্বা list
।

লেখাগুলি একটু পড়ার চেষ্টা করি। অনেকগুলো কিন্তু পরিচিত শব্দ দেখা যাচ্ছে! এই শব্দগুলো হল daily_star
এ কি কি তথ্য আছে, এবং এটি দিয়ে কি কি কাজ করা যাবে – সেগুলো! আমাকে বিশ্বাস হচ্ছে না তো? আচ্ছা নিজের চোখেই দেখনু না হয়! আপনার iPython Shell এ এক্সিকিউট করুন (সোজা বাংলা – লিখে এন্টার চাপুন):
daily_star.url
দেখলেন কি সুন্দর করে URLটি ছাপিয়ে দিল! আরও তো অনেকগুলো আছে, আরেকটা ট্রাই মারি!
daily_star.status_code
অবিশ্বাস্য ব্যাপার! ডেইলি স্টার পত্রিকার ওয়েবসাইট লোড করা সংক্রান্ত অনেককিছুই আছে এখানে।

url, status_code কে এক হিসেবে daily_star এর property বলা যায়। এরকম পাইথন প্রত্যেকটি অবজেক্ট বা জিনিসের প্রোপার্টি থাকে – হোক সেটা 555 এর মত একটি সংখ্যা কিংবা “I hate studying giant books” এর মত লেখা কিংবা ডাটাবেজের সাথে কানেকশন। ব্যাপারটাকে এভাবে চিন্তা করুন, বাস্তব দুনিয়াতে সকল জিনিসেরই কিছু বৈশিষ্ট্য থাকে, যেমন
mobile.color
,mobile.price
,mobile.screen_size
। আবার প্রত্যেক জিনিসেরই কিছু সংশ্লিষ্টaction
বা কাজ থাকে, যেমনmobile.switch_on()
,mobile.switch_off()
সত্য মিথ্যে আর গুটিবাজি
আচ্ছা, এখন একটা কাজ করি তো, নিচের স্টেটমেন্টটা এক্সিকিউট করি!
daily_star.ok
দেখাচ্ছে, True
। পাইথন বলতে চাচ্ছে daily_star
লোড করা ok
, মানে তো ঠিকঠাকই লোড হয়েছে! এখন এমনি একটা মজার কাজ করে দেখি তো, daily_star.ok
এর আগে not
লিখি!
not daily_star.ok
ওমা! এ তো বেমালুম গুটিবাজি, এক্কেবারে False
হয়ে গেল। অবশ্য বেচারা পাইথন দোষ আর কি, not True
মানে তো False
ই। যাই হোক, মজা যথেষ্ট নেওয়া হয়েছে বেচারা পাইথনের সঙ্গে, এবার একটু মনে মনে ভেবে দেখুন তো আমরা আসলে কি করলাম 😉
কমে যাউক মোবাইলের বিল 🙁
এবার দেখি daily_star.text
এক্সিকিউট করলে কি হয়!ভয় পাওয়ার কিছু নাই, আপনার কম্পিউটারের মাথা নষ্ট হয়ে যায়নি, ডেইলি স্টারের পেজে আসলেই এমন একগাদা Markup কোড রয়েছে। এই মার্কআপ কোডের মাঝেই লুকিয়ে আছে আমাদের কাঙ্খিত লেখা।

মার্কআপ কোডের সাহায্যে ওয়েবপেজের স্টাইল স্ট্রাকচার ইত্যাদি নির্দিষ্ট করা হয়, হেডিং, বডি টেক্সট, প্যারাগ্রাফ ইত্যাদি নির্ধারণ করে দেওয়া হয়। ওয়েবসাইটগুলোতে HTML নামের মার্কআপ ল্যাঙ্গুয়েজে কোড লেখা হয়।
কিন্তু এখন কথা হচ্ছে, এই এক বস্তা লেখা থেকে আমাদের হেডলাইনগুলো বের করব কিভাবে? সরাসরি ওই লেখা বের করতে পারার জন্য আমাদেরকে HTML Parse
করতে হবে। আর নিশ্চয়ই এতক্ষণে বুঝে ফেলেছেন, পার্সিং এর কাজ করার জন্য আরও একদল বুদ্ধিমান প্রোগ্রামার কোন না কোন মডিউল বানিয়ে রেখেছে; ঠিক যেমন ইন্টারনেট থেকে ডাটা লোড করার জন্য আরেকদল কুউল প্রোগ্রামার requests
লাইব্রেরি বানিয়েছিল। সেই কাজ আগামী পর্বে শুরু করব আশা করি! 😀