html5lib হলো একটি পিউর-পাইথন লাইব্রেরি HTML পার্স করার জন্য। এটি WHATWG HTML স্পেসিফিকেশনের সাথে কনফর্ম করার জন্য ডিজাইন করা হয়েছে, যা সকল মেজর ওয়েব ব্রাউজার ইমপ্লিমেন্ট করে। এটি একটি HTML ডকুমেন্টের প্রায় সকল এলিমেন্ট পার্স করতে পারে, সেটিকে বিভিন্ন ট্যাগ এবং পিসে ভেঙে দেয় যেগুলো ভিন্ন ইউজ কেসের জন্য ফিল্টার করা যায়। এটি টেক্সটকে ঠিক उसीভাবে পার্স করে như মেজর ব্রাউজারগুলো করে। এটি ভাঙা HTML ট্যাগও হ্যান্ডেল করতে পারে এবং স্ট্রাকচার পুরনোর জন্য কিছু ضرুরী ট্যাগ যোগ করতে পারে। এছাড়া এটি পিউর পাইথন কোডে লেখা।
lxml হলো একটি অনুরূপ পার্সার কিন্তু XML ফিচার-চালিত। এর এক্সটার্নাল C লাইব্রেরির উপর নির্ভরশীলতা আছে। html5lib এর তুলনায় এটি দ্রুত।
চলুন একটি স্যাম্পল ট্যাগ উদাহরণ लेकर এই দুটি পার্সারের আচরণের পার্থক্য পর্যবেক্ষণ করি।
উদাহরণ
from bs4 import BeautifulSoup
html5_structure = BeautifulSoup("উপরের কোড রান করলে নিচের ফলাফল পাওয়া যায়
আউটপুট
যে পorganisation html5lib আরও সম্পূর্ণ HTML ডকুমেন্ট তৈরি করে
ট্যাগ অন্তর্ভুক্ত করে। lxml লাইব্রেরি XML-লাইক স্ট্রাকচার কে ফোকাস করে এবং
ট্যাগকে সম্পূর্ণ উপেক্ষা করে।