1. পণ্য
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

ওপেন সোর্স পাইথন লাইব্রেরি HTML/XML পার্স এবং ডেটা এক্সট্র্যাক্ট করার জন্য

বিউটিফুল স্যুপ একটি শীর্ষস্থানীয় ওপেন সোর্স পাইথন পার্সিং লাইব্রেরি যা বিশৃঙ্খল HTML/XML পার্স করে, টেক্সট/লিঙ্ক এক্সট্র্যাক্ট করে, ট্রি নেভিগেট করে এবং আধুনিক ওয়েব স্ক্র্যাপিং ওয়ার্কফ্লোকে শক্তি প্রদান করে।

বিউটিফুল স্যুপ কি?

ওয়েব স্ক্র্যাপিং ডেটা সায়েন্টিস্ট, ডেভেলপার এবং গবেষকদের জন্য একটি অপরিহার্য দক্ষতা হয়ে উঠেছে, যারা ওয়েবসাইট থেকে মূল্যবান তথ্য বের করতে চান। Beautiful Soup HTML এবং XML ডকুমেন্ট পার্স করার জন্য সবচেয়ে জনপ্রিয় এবং ব্যবহারকারী-বান্ধব পাইথন লাইব্রেরিগুলোর একটি। ২০০৪ সালে এর সৃষ্টির পর থেকে, এই শক্তিশালী টুলটি প্রোগ্রামারদের ওয়েব স্ক্র্যাপিং প্রকল্পে অগণিত ঘন্টা সাশ্রয় করেছে। লাইব্রেরির স্বজ্ঞাত API, চমৎকার ডকুমেন্টেশন এবং সক্রিয় কমিউনিটি সাপোর্ট নিশ্চিত করে যে নবীন এবং অভিজ্ঞ উভয় ডেভেলপারই দক্ষতার সাথে ওয়েব ডেটা বের করতে পারেন।

Beautiful Soup হল একটি পাইথন লাইব্রেরি যা বিশেষভাবে HTML এবং XML ফাইল থেকে ডেটা বের করার জন্য ডিজাইন করা হয়েছে। এটি একটি শক্তিশালী পাইথন লাইব্রেরি যা ২০০৪ সাল থেকে ওয়েব স্ক্র্যাপিং প্রকল্পে প্রোগ্রামারদের ঘণ্টা বা দিন কাজ বাঁচিয়ে আসছে। মাত্র কয়েকটি কোড লাইনের মাধ্যমে, আপনি জটিল কুয়েরি সম্পাদন করতে পারেন, যেমন সরলতা এবং ব্যবহার সহজতা, সব লিঙ্ক খুঁজে বের করা, টেক্সট কন্টেন্ট বের করা, স্বয়ংক্রিয় এনকোডিং রূপান্তর, পার্সার নমনীয়তা, দৃঢ় ত্রুটি হ্যান্ডলিং, ওয়েব পেজ থেকে লিঙ্ক অনুসন্ধান ও বের করা এবং আরও অনেক কিছু।

Beautiful Soup লাইব্রেরি HTML এবং XML ডকুমেন্ট থেকে ডেটা বের করার প্রায়ই হতাশাজনক কাজকে একটি সরল পাইথনিক প্রক্রিয়ায় রূপান্তর করে, খারাপভাবে গঠিত ওয়েব কন্টেন্টকে সুসংগঠিত পার্স ট্রিতে রূপান্তরিত করে যা আপনি সহজ পদ্ধতিতে নেভিগেট এবং অনুসন্ধান করতে পারেন। যা ঐতিহ্যগতভাবে ঘণ্টার পর ঘণ্টা ম্যানুয়াল কোডিং প্রয়োজন হতো, তা Beautiful Soup দিয়ে মিনিটের মধ্যে সম্পন্ন করা যায়। এটি ওয়েব স্ক্র্যাপিং জগতে প্রবেশ করা পাইথন ডেভেলপারদের জন্য শিল্পের মানদণ্ড হিসেবে রয়ে গেছে। এর সরলতা, বিভিন্ন পার্সারের শক্তির সঙ্গে মিলিয়ে, স্ট্যাটিক ওয়েবসাইট থেকে ডেটা বের করার জন্য এটি অপ্রতিদ্বন্দ্বী পছন্দ করে তোলে।

Previous Next

বিউটিফুল স্যুপ দিয়ে শুরু করা

Beautiful Soup ইনস্টল করার সুপারিশকৃত এবং সহজতম পদ্ধতি হল pip ব্যবহার করা। মসৃণ ইনস্টলেশনের জন্য দয়া করে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

pip এর মাধ্যমে Beautiful Soup লাইব্রেরি ইনস্টল করুন

pip install beautifulsoup4 

আপনি এটিকে ম্যানুয়ালি ইনস্টল করতে পারেন; সর্বশেষ রিলিজ ফাইলগুলি সরাসরি Beautiful Soup ওয়েব পেজ থেকে ডাউনলোড করুন।

একাধিক পার্সার দিয়ে কাজ করা

Beautiful Soup লাইব্রেরি নিজে সব পার্সিং করে না — বরং এটি Python-এর অন্তর্নির্মিত html.parser, দ্রুত lxml পার্সার এবং ব্রাউজার-সদৃশ html5lib এর মতো পরিপক্ক পার্সারগুলোর উপরে বসে। প্রয়োজন অনুযায়ী আপনি গতি বা মান-অনুগততা অগ্রাধিকার দিতে পারেন। এই আর্কিটেকচার আপনাকে আপনার চাহিদার সাথে সবচেয়ে মানানসই পার্সার নির্বাচন করার নমনীয়তা দেয়, পার্সিং গতি ও নমনীয়তার মধ্যে সমঝোতা করতে, আপনার Beautiful Soup কোড পরিবর্তন না করে বিভিন্ন পার্সিং কৌশল চেষ্টা করতে, ইত্যাদি। নিম্নলিখিত সহজ কোডটি দেখায় কীভাবে ডেভেলপাররা Beautiful Soup দিয়ে বিভিন্ন পার্সার ব্যবহার করতে পারেন।

Python অ্যাপের মধ্যে HTML ডকুমেন্ট পার্স করার জন্য একাধিক পার্সার কীভাবে ব্যবহার করবেন?

# Using different parsers with Beautiful Soup
html_doc = "

নমুনা বিষয়বস্তু

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

ওয়েব পেজ থেকে লিঙ্ক বের করা

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

Python ব্যবহার করে ওয়েব পেজ থেকে লিঙ্ক কীভাবে বের করবেন?

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

নির্দিষ্ট HTML উপাদান অনুসন্ধান

Beautiful Soup-এর অন্যতম বড় শক্তি হল এটি কত স্বাভাবিকভাবে আপনাকে HTML অনুসন্ধান করতে দেয়, প্রায় যেন সাধারণ ইংরেজি পড়া। জটিল DOM API-গুলোর সঙ্গে কাজ করার পরিবর্তে, আপনি যা চান তা বর্ণনা করেন, এবং Beautiful Soup আপনার জন্য তা খুঁজে দেয়। ধরুন আপনি একটি পৃষ্ঠার সব লিঙ্ক খুঁজতে চান। আপনি নিম্নলিখিত কোড উদাহরণে দেখানো মতো find_all মেথড ব্যবহার করতে পারেন। এই মেথডটি সব লিঙ্ক ট্যাগের একটি তালিকা ফেরত দেয়। তারপর আমরা তাদের মাধ্যমে ইটারেট করে URL এবং টেক্সট বের করি যাতে পাইথন API ব্যবহার করে দৃশ্যমান লিঙ্কের নাম পাওয়া যায়।

Python API ব্যবহার করে ওয়েব পেজ থেকে নির্দিষ্ট HTML উপাদান কীভাবে অনুসন্ধান ও বের করবেন?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

স্বয়ংক্রিয় এনকোডিং পরিচালনা

Beautiful Soup-এর সবচেয়ে সুবিধাজনক বৈশিষ্ট্যগুলোর একটি হল এর স্বয়ংক্রিয় এনকোডিং রূপান্তর। লাইব্রেরি স্বয়ংক্রিয়ভাবে ইনকামিং ডকুমেন্টগুলোকে ইউনিকোডে এবং আউটগোয়িং ডকুমেন্টগুলোকে UTF-8-এ রূপান্তর করে, যা ওয়েব স্ক্র্যাপিংয়ের সবচেয়ে সাধারণ মাথাব্যথাগুলোর একটি দূর করে। দয়া করে মনে রাখবেন যে ডকুমেন্টটি যদি কোনো এনকোডিং নির্দিষ্ট না করে, তখনই আপনাকে এনকোডিং নিয়ে চিন্তা করতে হবে, কারণ Beautiful Soup স্বয়ংক্রিয়ভাবে এনকোডিং সনাক্ত করতে পারে না। এই বিরল ক্ষেত্রে, আপনাকে ম্যানুয়ালি মূল এনকোডিং নির্দিষ্ট করতে হবে।

 বাংলা