Kategori
কোডিং

পাইথন বিউটিফুল স্যুপ পার্স করার বিভিন্ন উপায়

পাইথন অধ্যয়ন করার সময়, আমি এইচটিএমএল নথি থেকে নির্দিষ্ট ট্যাগ পেতে বিভিন্ন উপায় সংগঠিত করার চেষ্টা করেছি।

HTML উদাহরণ কোড

ধরে নিই যে নিচের মত একটি HTML ডকুমেন্ট আছে, আসুন দেখি কিভাবে BeautifulSoup মডিউলটি একের পর এক ব্যবহার করে নির্দিষ্ট ট্যাগ পার্স করা যায়।

from bs4 import BeautifulSoup

html = """
<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <span class='test1'>Content1</span>
        <div class='test1'>Content2</div>
        <div class='test1' id='target' name='sangminem'>Goal</div>
        <div class='test2'>Content3</div>
    </body>
</html>
"""

soup = BeautifulSoup(html, "html.parser")

লক্ষ্য নীচের ট্যাগ.

<div class='test1' id='target' name='sangminem'>Goal</div>

find() পদ্ধতি ব্যবহার করুন

print(soup.find('div',id='target')) #tag, id
print(soup.find('div',attrs={'id':'target'})) #tag, id as attribute value
print(soup.find('div',attrs={'name':'sangminem'})) #tag, name as attribute value
print(soup.find(attrs={'name':'sangminem'})) #name as attribute value
print(soup.find(attrs={'id':'target'})) #id as attribute value

এখানে আউটপুট আছে।

<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>

find_all() পদ্ধতি ব্যবহার করুন

print(soup.find_all('div')[1]) #tag
print(soup.find_all('div',class_=['test1'])[1]) #tag, class
print(soup.find_all('div',id='target')[0]) #tag, id
print(soup.find_all('div',attrs={'class':'test1'})[1]) #tag, class as attribute value
print(soup.find_all('div',attrs={'id':'target'})[0]) #tag, id as attribute value
print(soup.find_all('div',attrs={'name':'sangminem'})[0]) #name as attribute value
print(soup.find_all(class_=['test1'])[2]) #class
print(soup.find_all(id='target')[0]) #id
print(soup.find_all(attrs={'class':'test1'})[2]) #class as attribute value
print(soup.find_all(attrs={'id':'target'})[0]) #id as attribute value
print(soup.find_all(attrs={'name':'sangminem'})[0]) #name as attribute value

এখানে আউটপুট আছে।

<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>

Select_one() পদ্ধতি ব্যবহার করুন

print(soup.select_one('div.test1#target')) #tag, class, id
print(soup.select_one('div#target')) #tag, id
print(soup.select_one('.test1#target')) #class, id
print(soup.select_one('#target')) #id

এখানে আউটপুট আছে।

<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>

নির্বাচন () পদ্ধতি ব্যবহার করুন

print(soup.select('.test1')[2]) #class
print(soup.select('div.test1')[1]) #tag, class
print(soup.select('div.test1#target')[0]) #tag, class, id
print(soup.select('div#target')[0]) #tag, id
print(soup.select('.test1#target')[0]) #class, id
print(soup.select('#target')[0]) #id

এখানে আউটপুট আছে।

<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>
<div class="test1" id="target" name="sangminem">Goal</div>

find() পদ্ধতি এবং select_one() পদ্ধতি একটি একক ফলাফল পায়।

শর্ত পূরণ করে এমন একাধিক ফলাফল থাকলে, শুধুমাত্র প্রথম মানটি পুনরুদ্ধার করা হয়।

find_all() এবং select() পদ্ধতিগুলি একটি অ্যারের আকারে শর্ত পূরণ করে এমন সমস্ত ফলাফল পায়।

অতএব, অবশেষে পছন্দসই মান পেতে, আপনাকে অবশ্যই অ্যারে সূচকটি বাদ দিতে হবে না।

বিভিন্ন পদ্ধতি থাকার কারণে কোনটি ব্যবহার করবেন তা সিদ্ধান্ত নেওয়া কঠিন হলে, আমরা নির্বাচন() পদ্ধতি ব্যবহার করার পরামর্শ দিই।

এটি ব্যবহার করা সহজ এবং আসলে দ্রুত পার্স হয়।

মন্তব্য করুন

আপনার ই-মেইল এ্যাড্রেস প্রকাশিত হবে না। * চিহ্নিত বিষয়গুলো আবশ্যক।

bn_BDবাংলা