
বন্ধু বড়ভাই ও ছোটভাইয়েরা , আশা করি সবাই ভাল আছেন ।অনেক দিন পর আজ লিখতে বসলাম । আজ আমি আপনাদের দেখাব কীভাবে পাইকিউটি তে একটা বাটনের সাথে আপনার নিজের তৈরী একটা ফাংমন কানেক্ট করতে হয় । এটা মূলত খুবই সহজ একটা বিষয় । এই প্রোগ্রামের থিম টা হল , আপনাকে একটা বাটন ও একটা টেক্সট বক্স তৈরী করতে হবে , এবং একটা ফাংশন তৈরী করে এই বাটনের কমান্ডে দিয়ে দিতে হবে । তো এই প্রোগ্রামে আমরা অনেকগুলি নতুন কমান্ড দেখব যেগুলো নতুন নতুন কাজে ব্যাবহৃত হয়েছে ।
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()
পাইথনের বিভিন্ন সমস্যার সমাধান ও লাইভ আপডেট পেতে যুক্ত থাকুন আমাদের পাইথন বাংলা গ্রুপে ।
আমি অরিন্দম পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 81 টি টিউন ও 316 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 20 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
মানসিক ভাবে দূর্বল । কোন কাজই কনফিডেন্টলি করতে পারি না , তবুও দেখি কাজ শেষ পর্যন্ত হয়ে যায় । নিজের সম্পর্কে এক এক সময় ধারণা এক এক রকম হয় । আমার কোন বেল ব্রেক নেই । সকালে যে কাজ করব ঠিক করি , বিকালে তা করতে পারি না । নিজের...