বন্ধু বড়ভাই ও ছোটভাইয়েরা , আশা করি সবাই ভাল আছেন ।অনেক দিন পর আজ লিখতে বসলাম । আজ আমি আপনাদের দেখাব কীভাবে পাইকিউটি তে একটা বাটনের সাথে আপনার নিজের তৈরী একটা ফাংমন কানেক্ট করতে হয় । এটা মূলত খুবই সহজ একটা বিষয় । এই প্রোগ্রামের থিম টা হল , আপনাকে একটা বাটন ও একটা টেক্সট বক্স তৈরী করতে হবে , এবং একটা ফাংশন তৈরী করে এই বাটনের কমান্ডে দিয়ে দিতে হবে । তো এই প্রোগ্রামে আমরা অনেকগুলি নতুন কমান্ড দেখব যেগুলো নতুন নতুন কাজে ব্যাবহৃত হয়েছে ।
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * class AppForm(QMainWindow): def __init__(self, parent=None): QMainWindow.__init__(self, parent) self.create_main_frame() # আমাদের মেইন উইন্ডোর লেআউট তৈরী করতে ব্যাবহৃত ফাংশন def create_main_frame(self): page = QWidget() # একটা বাটন তৈরী করলাম self.button = QPushButton('joy', page) # একটা টেক্সট লাইন এডিট তেরী করলাম self.edit1 = QLineEdit() # একটা টেক্সট বক্স তৈরী করে তারসাথে উপরের তেরী লাইনএডিটটার সংযোগ ঘটালামও বক্সের লেআউট ঠিক করলাম । vbox1 = QVBoxLayout() vbox1.addWidget(self.edit1) vbox1.addWidget(self.button) page.setLayout(vbox1) self.setCentralWidget(page) # বাটনে ক্লিক করলে কোন ফাংশনটি কাজ করবে সেটা বলে দিলাম । self.connect(self.button, SIGNAL("clicked()"), self.search) # ফাংশনটা তৈরী করে এর মধ্যে ইফ ইলস দিয়ে একটা ডিকশনারী সিস্টেম তৈরী করলাম । def search(self): if self.edit1.text() == 'Arpita': # একটা মেসেজবক্স সো করালাম । QMessageBox.about(self,"My message box", "She is my younger sister. The youngest member in our family") elif self.edit1.text() == 'Khulna': # এখানে মেসেজবক্সের স্থানে স্টাটাসবারে একটা মেসেজ সো করালাম । self.statusBar().showMessage('Python is best') elif self.edit1.text() == 'pybangla': QMessageBox.about(self,"My message box", "It is a python programmer's group in bangladesh.") else: QMessageBox.about(self,"My message box", "not found") app = QApplication(sys.argv) form = AppForm() form.show() app.exec_()
এবার আমরা দেখব কীভাবে পাইথন দিয়ে ওয়েব স্ক্রাপিং এর কাজ করা যায় । এর জন্য আমরা ১টি মডিউল ব্যাবহার করব ।এইটি হল : urllib2
এটা পাইথনের সাথে ডিফল্টভাবে ইনস্টল করা থাকে এবার আমরা দেখব এটা ইউজ করে কীভাবে একটা ওয়েবসাইটের যাবতীয় তথ্য জানা যায় বা ডাউনলোড করা যায় ।
প্রথমে সবাই নীচের কোড টা লিখে ফেলুন :
import urllib2 response = urllib2.urlopen('http://arindampal.wordpress.com') print response.info() html = response.read() response.close()
দেখুন প্রথম লাইনে আমরা মডিউল টা ইমপোর্ট করেছি । তারপরresponseনামের একটা ভ্য্যারিয়েবল নিয়ে urlopen মেথড দিয়ে ইউ আর এল টা ওপেন করেছি । এরপর info() মেথড এর মাধ্য্যমে আমরা ওয়েব সার্ভার এর হেডার ফাইলের যাবতীয় তথ্য প্রিন্ট করেছি । তারপর এটা ক্লোজ করেছি । এটা হল জাস্ট একটা স্যাম্পল । এবার আসুন আমরা দেখি এই মডিউলের মাধ্যমে আর কী কী করা যায় ।
এইবার আমি আপনাদের দেখাব কীভাবে একটা ওয়েবসাইটের সব কোড পাইথন কম্পাইলরে ডাউনলোড করা যায় । সবাই নীচের কোড টা লিখে ফেলুন :
import urllib2 #একটা ভ্যারিয়েবলের মধ্যে ওয়েবসাইট টা ওপেন করলাম response = urllib2.urlopen('http:// arindampal.wordpress.com /') #একটা ভ্যারিয়েবল নিয়ে ওযেব সাইটের ডাটা গুলো রিড করলাম .read() মেথড এর মাধ্যমে html = response.read() #ডাটা গুলো প্রিন্ট করলাম । print "All data: ", html #ডাটার লেন্থ প্রিন্ট করলাম । print "Get the length :", len(html)
আশা করি বিষয়টা আপনারা বুঝতে পেরেছেন । এবার আমরা দেখব কীভাবে একটা সাইট থেকে কোন ফাইল ডাউনলোড করতে হয় । সবাই নীচের কোডটা লিখুন ।
প্রথমে নামের একটা ভ্যারিয়েবল নিয়ে আমরা একটা ইউআর এল তাতে এসাইন করেছি । ।
import urllib2,os #প্রথমে url নামের একটা ভ্যারিয়েবল নিয়ে আমরা একটা ইউআর এল তাতে এসাইন করেছি । url = 'http://pythonxy.googlecode.com/files/BeautifulSoup4-4.3.1-1_py27.exe' #এখানে আমরা downloading with urllib2 লেখাটা প্রিন্ট করেছি print "downloading with urllib2" #ইউআর এল টা ওপেন করেছি f = urllib2.urlopen(url) #ইউআর এল টা রিড করেছি । data = f.read() #আমরা যে ফাইলটা ডাউনলোড করব সেটার সম্পর্কে ইনফরমেশন প্রিন্ট করেছি । print f.info() #code2.zip নামের একটা জিপ ফাইল কোড ভ্যারিয়েবলের মাধ্যমে ওপেন করে সেটাতে ডাউলোডেড ডাটা সেভ করেছি । with open("code2.zip", "wb") as code: code.write(data) print"complete"
এবার আপনার পিসিতে যে ডাইরেক্টরিতে প্রোগ্রামটা রয়েছে সেখানে দেখুন কোড.জিপ নামের একটা ফাইল তৈরী হয়েছে এবয তার মধ্যে আমাদের ডাউনলোড করা ফাইলটা রয়েছে ।
বা এটার ইন্টারফেস সহ কোডটা হতে নীচের মত :
from Tkinter import * import tkMessageBox import Tkinter from Tkinter import Tk import urllib2,os root = Tkinter.Tk() root.geometry("400x500") Lbl1 = Label(root, text="Enter your url Here:") Lbl1.pack(side=TOP,padx=5,pady=5) Lbl2 = Label(root, text="Devoloped by :Python Bangla)") Lbl2.pack(side=BOTTOM,padx=5,pady=5) Entry1 = Entry(root, bd =1) Entry1.pack(side=TOP,padx=5,pady=5) def sets(): url = Entry1.get() f = urllib2.urlopen(url) data = f.read() Lbl = Label(root, text = f.info()) Lbl.pack() with open("code2.zip", "wb") as code: code.write(data) f = Toplevel(root) f.geometry("500x320") button = Button(f,padx=10,pady=20, text="Download Completee") button.pack() bttn1 = Tkinter.Button(root, text ="Download ", command = sets) bttn1.pack() root.mainloop()
পাইথনের বিভিন্ন সমস্যার সমাধান ও লাইভ আপডেট পেতে যুক্ত থাকুন আমাদের পাইথন বাংলা গ্রুপে ।
আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...