মজার ও সহজ প্রোগ্রামিং, পাইথন প্রোগ্রামিং [পর্ব-২৭] :: PYQT তে বাটনের সাথে ফাংশন কানেক্ট করা ও পাইথনে ওয়েব স্ক্রাপিং এর কাজ , একটি ডাউনলোড ম্যানেজার তৈরী করা……………

0
576

আজ আমি আপনাদের দেখাব কীভাবে পাইকিউটি তে একটা বাটনের সাথে আপনার নিজের তৈরী একটা ফাংমন কানেক্ট করতে হয় । এটা মূলত খুবই সহজ একটা বিষয় । এই প্রোগ্রামের থিম টা হল , আপনাকে একটা বাটন ও একটা টেক্সট বক্স তৈরী করতে হবে , এবং একটা ফাংশন তৈরী করে এই বাটনের কমান্ডে দিয়ে দিতে হবে । তো এই প্রোগ্রামে আমরা অনেকগুলি নতুন কমান্ড দেখব যেগুলো নতুন নতুন কাজে ব্যাবহৃত হয়েছে ।

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()

পাইথনের বিভিন্ন সমস্যার সমাধান ও লাইভ আপডেট পেতে যুক্ত থাকুন আমাদের পাইথন বাংলা গ্রুপে ।

Please comment Here (ভাল লাগলে কমেন্ট করুন)