কম্পিউটার

পাইথনে html5lib এবং lxml পার্সার


html5lib HTML পার্স করার জন্য একটি বিশুদ্ধ-পাইথন লাইব্রেরি। এটি WHATWG HTML স্পেসিফিকেশনের সাথে সঙ্গতিপূর্ণ করার জন্য ডিজাইন করা হয়েছে, যেমনটি সমস্ত প্রধান ওয়েব ব্রাউজার দ্বারা প্রয়োগ করা হয়। এটি একটি HTML ডকের প্রায় সমস্ত উপাদানকে পার্স করতে পারে, এটিকে বিভিন্ন ট্যাগ এবং টুকরো টুকরো করে বিভক্ত করে যা বিভিন্ন ব্যবহারের ক্ষেত্রে ফিল্টার করা যেতে পারে। এটি প্রধান ব্রাউজারগুলির মতো একইভাবে পাঠ্যকে পার্স করে। এটি ভাঙা HTML ট্যাগগুলিও মোকাবেলা করতে পারে এবং কাঠামোটি সম্পূর্ণ করতে কিছু প্রয়োজনীয় ট্যাগ যুক্ত করতে পারে। এছাড়াও এটি বিশুদ্ধ পাইথন কোডে লেখা।

lxml এটি একটি অনুরূপ পার্সার কিন্তু HTML এর তুলনায় XML বৈশিষ্ট্য দ্বারা চালিত৷ এটি বহিরাগত সি লাইব্রেরির উপর নির্ভরশীলতা আছে। html5lib এর তুলনায় এটি দ্রুত।

একটি নমুনা ট্যাগ উদাহরণ গ্রহণ করে এই দুই পার্সারের আচরণের পার্থক্য পর্যবেক্ষণ করা যাক এবং আউটপুট দেখুন৷

উদাহরণ

from bs4 import BeautifulSoup
html5_structure = BeautifulSoup("<head><li></p>", "html5lib")
print(html5_structure)
lxml_structure = BeautifulSoup("<head><li></p>", "lxml")
print(lxml_structure)

উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয়

আউটপুট

<html><head></head><body><li><p></p></li></body></html>
<html><head></head><body><li></li></body></html>

আমরা দেখতে পাচ্ছি html5lib

কে অন্তর্ভুক্ত করে আরও সম্পূর্ণ HTML নথি তৈরি করে

ট্যাগ lxml লাইব্রেরি xml-এর মতো কাঠামোর দিকে বেশি মনোযোগী এবং ট্যাগটিকে সম্পূর্ণ উপেক্ষা করে।


  1. পাইথনে পারস্পরিক সম্পর্ক এবং রিগ্রেশন

  2. Python এ পারমুটেশন এবং কম্বিনেশন?

  3. html.parser — পাইথনে সাধারণ HTML এবং XHTML পার্সার

  4. পাইথনে =+ এবং +=কি করে?