HTML/XML को पार्स करने और डेटा निकालने के लिए ओपन सोर्स पायथन लाइब्रेरी
ब्यूटीफुल सूप एक प्रमुख ओपन सोर्स पायथन पार्सिंग लाइब्रेरी है जो गंदे HTML/XML को पार्स करती है, टेक्स्ट/लिंक निकालती है, ट्री में नेविगेट करती है और आधुनिक वेब स्क्रैपिंग वर्कफ़्लो को शक्ति देती है।
Beautiful Soup क्या है?
वेब स्क्रैपिंग डेटा वैज्ञानिकों, डेवलपर्स और शोधकर्ताओं के लिए एक आवश्यक कौशल बन गया है, जिन्हें वेबसाइटों से मूल्यवान जानकारी निकालनी होती है। Beautiful Soup HTML और XML दस्तावेज़ों को पार्स करने के लिए सबसे लोकप्रिय और उपयोगकर्ता‑अनुकूल Python लाइब्रेरी में से एक है। 2004 में इसके निर्माण के बाद से, इस शक्तिशाली टूल ने प्रोग्रामरों को वेब स्क्रैपिंग प्रोजेक्ट्स में अनगिनत घंटे बचाए हैं। लाइब्रेरी का सहज API, उत्कृष्ट दस्तावेज़ीकरण, और सक्रिय समुदाय समर्थन सुनिश्चित करता है कि शुरुआती और अनुभवी दोनों डेवलपर्स वेब डेटा को प्रभावी ढंग से निकाल सकें।
Beautiful Soup एक Python लाइब्रेरी है जो विशेष रूप से HTML और XML फ़ाइलों से डेटा निकालने के लिए डिज़ाइन की गई है। यह एक शक्तिशाली Python लाइब्रेरी है जो 2004 से वेब स्क्रैपिंग प्रोजेक्ट्स में प्रोग्रामरों का कई घंटे या दिनों का काम बचा रही है। केवल कुछ लाइनों के कोड से, आप जटिल क्वेरीज़ कर सकते हैं जैसे, सरलता और उपयोग में आसानी, सभी लिंक ढूँढ़ना, टेक्स्ट कंटेंट निकालना, स्वचालित एन्कोडिंग रूपांतरण, पार्सर लचीलापन, मजबूत त्रुटि संभालना, वेब पेजों से लिंक खोजना और निकालना और कई अन्य।
Beautiful Soup लाइब्रेरी HTML और XML दस्तावेज़ों से डेटा निकालने के अक्सर निराशाजनक कार्य को एक सरल Pythonic प्रक्रिया में बदल देती है, खराब संरचित वेब कंटेंट को व्यवस्थित पार्स ट्रीज़ में परिवर्तित करती है जिन्हें आप सरल तरीकों से नेविगेट और खोज सकते हैं। जो पारंपरिक रूप से कई घंटे की मैन्युअल कोडिंग लेता, वह Beautiful Soup के साथ मिनटों में पूरा हो सकता है। यह वेब स्क्रैपिंग की दुनिया में प्रवेश करने वाले Python डेवलपर्स के लिए उद्योग मानक बना हुआ है। इसकी सरलता, विभिन्न पार्सरों की शक्ति के साथ मिलकर, इसे स्थिर वेबसाइटों से डेटा निकालने के लिए एक अभेद्य विकल्प बनाती है।
Beautiful Soup के साथ शुरुआत
सिफ़ारिश किया गया और सबसे आसान तरीका 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 एप्लिकेशनों के भीतर वेब पेज लोड करने और उससे लिंक निकालने के लिए समर्थन शामिल किया है। निम्नलिखित सरल कोड उदाहरण requests लाइब्रेरी का उपयोग करके लाइव वेबपेज को फ़ेच करने और फिर Python एप्लिकेशनों के भीतर सभी एंकर टैग निकालने को दर्शाता है।
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 और टेक्स्ट निकालते हैं ताकि Python 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 स्वचालित रूप से एन्कोडिंग का पता नहीं लगा सकता। इन दुर्लभ मामलों में, आपको मूल एन्कोडिंग को मैन्युअल रूप से निर्दिष्ट करना होगा।