হাতে-কলমে পাইথন: পর্ব ২ (রিকোয়েস্টের পরে কি হল?)

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

iPython Shell

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

এবার যদি আমরা dir(daily_star) স্টেটমেন্টটি এক্সিকিউট করি (লিখে এন্টার চাপি বলার ইশ্মার্ট ভার্সন), তাহলে দেখতে পারব নিচের মত একটি ইয়াআআআআআ বিশাল লম্বা list

dir daily_star

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

দেখলেন কি সুন্দর করে URLটি ছাপিয়ে দিল! আরও তো অনেকগুলো আছে, আরেকটা ট্রাই মারি!

অবিশ্বাস্য ব্যাপার! ডেইলি স্টার পত্রিকার ওয়েবসাইট লোড করা সংক্রান্ত অনেককিছুই আছে এখানে।

url, status_code কে এক হিসেবে daily_star এর property বলা যায়। এরকম পাইথন প্রত্যেকটি অবজেক্ট বা জিনিসের প্রোপার্টি থাকে – হোক সেটা 555 এর মত একটি সংখ্যা কিংবা “I hate studying giant books” এর মত লেখা কিংবা ডাটাবেজের সাথে কানেকশন। ব্যাপারটাকে এভাবে চিন্তা করুন, বাস্তব দুনিয়াতে সকল জিনিসেরই কিছু বৈশিষ্ট্য থাকে, যেমন mobile.colormobile.pricemobile.screen_size। আবার প্রত্যেক জিনিসেরই কিছু সংশ্লিষ্ট action বা কাজ থাকে, যেমন mobile.switch_on()mobile.switch_off()

সত্য মিথ্যে আর গুটিবাজি

আচ্ছা, এখন একটা কাজ করি তো, নিচের স্টেটমেন্টটা এক্সিকিউট করি!

দেখাচ্ছে, True । পাইথন বলতে চাচ্ছে daily_star লোড করা ok, মানে তো ঠিকঠাকই লোড হয়েছে! এখন এমনি একটা মজার কাজ করে দেখি তো, daily_star.ok এর আগে not লিখি!

ওমা! এ তো বেমালুম গুটিবাজি, এক্কেবারে False হয়ে গেল। অবশ্য বেচারা পাইথন দোষ আর কি, not True মানে তো False ই। যাই হোক, মজা যথেষ্ট নেওয়া হয়েছে বেচারা পাইথনের সঙ্গে, এবার একটু মনে মনে ভেবে দেখুন তো আমরা আসলে কি করলাম 😉

কমে যাউক মোবাইলের বিল 🙁

এবার দেখি daily_star.text এক্সিকিউট করলে কি হয়!ভয় পাওয়ার কিছু নাই, আপনার কম্পিউটারের মাথা নষ্ট হয়ে যায়নি, ডেইলি স্টারের পেজে আসলেই এমন একগাদা Markup কোড রয়েছে। এই মার্কআপ কোডের মাঝেই লুকিয়ে আছে আমাদের কাঙ্খিত লেখা।

মার্কআপ কোডের সাহায্যে ওয়েবপেজের স্টাইল স্ট্রাকচার ইত্যাদি নির্দিষ্ট করা হয়, হেডিং, বডি টেক্সট, প্যারাগ্রাফ ইত্যাদি নির্ধারণ করে দেওয়া হয়। ওয়েবসাইটগুলোতে HTML নামের মার্কআপ ল্যাঙ্গুয়েজে কোড লেখা হয়।

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

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।

This site uses Akismet to reduce spam. Learn how your comment data is processed.