এই মডিউলে ডিফাইন করা HTMLParser ক্লাস HTML এবং XHTML ডকুমেন্ট পার্স করার ফাংশনালিটি প্রদান করে। এই ক্লাসে হ্যান্ডলার মেথড রয়েছে যা ট্যাগ, ডেটা, কমেন্ট এবং অন্যান্য HTML এলিমেন্ট আইডেন্টিফাই করতে পারে।
আমাদের একটি নতুন ক্লাস ডিফাইন করতে হবে যা HTMLParser ক্লাসকে ইনহেরিট করে এবং feed() মেথড ব্যবহার করে HTML টেক্সট সাবমিট করতে হবে।
from html.parser import HTMLParser
class parser(HTMLParser):
pass
p = parser()
p.feed('')
আমাদের নিচের মেথডগুলো ওভাররাইড করতে হবে:
handle_starttag(tag, attrs):
HTML ট্যাগ সাধারণত শুরু ট্যাগ এবং এন্ড ট্যাগের জোড়ায় থাকে। উদাহরণস্বরূপ
এবং । এই মেথডটি একটি ট্যাগের শুরু হ্যান্ডেল করার জন্য কল করা হয়।ট্যাগের নাম লোয়ার কেসে কনভার্ট করা হয়। attrs আর্গুমেন্ট ট্যাগের <> ব্র্যাকেটের ভেতরে পাওয়া অ্যাট্রিবিউটগুলোকে বোঝায়।
উদাহরণস্বরূপ, ট্যাগ পার্সার অবজেক্টকে ফিড করা হয়।
from html.parser import HTMLParser
class parser(HTMLParser):
def handle_starttag(self, tag, attrs):
print("Start tag:", tag)
for attr in attrs:
print(" attr:", attr)
p = parser()
p.feed('')
আউটপুট
Start tag: a
attr: ('href', 'www.tutorialspoint.com')
handle_endtag(tag):
এই মেথডটি একটি এলিমেন্টের এন্ড ট্যাগ হ্যান্ডেল করার জন্য কল করা হয়।
def handle_endtag(self, tag):
print("end tag", tag)
handle_data(data):
এই মেথডটি ট্যাগের মাঝপথে আর্বিট্রারি ডেটা প্রসেস করার জন্য কল করা হয়। উদাহরণস্বরূপ:
def handle_data(self, data):
print(data)
p = parser()
html = '''
Tutorialspoint
Python standard library
HTML module
'''
p.feed(html)
আউটপুট
Start tag: h1 Tutorialspoint end tag h1 Start tag: b Python standard library end tag b Start tag: p HTML module end tag p
HTMLParser ক্লাসের অন্যান্য মেথডগুলো নিচে:
get_starttag_text()
সাম্প্রতিক খোলা স্টার্ট ট্যাগের টেক্সট রিটার্ন করে।
getpos()
কারেন্ট লাইন নম্বর এবং অফসেট রিটার্ন করে।
handle_startendtag(tag, attrs)
handle_starttag()-এর সাথে সাদৃশ্য, কিন্তু যখন পার্সার XHTML-স্টাইল খালি ট্যাগ () এনকাউন্টার করে তখন কল করা হয়।
handle_comment(data)
যখন একটি কমেন্ট এনকাউন্টার করা হয় (যেমন ) তখন এই মেথডটি কল করা হয়।