🎯 कस्टमाइज़ करने योग्य, डिटेक्शन-प्रतिरोधी क्लाउड ब्राउज़र जो स्व-विकसित Chromium द्वारा संचालित है, वेब क्रॉलर और एआई एजेंट्स के लिए डिज़ाइन किया गया। 👉अभी आज़माएं
वापस ब्लॉग पर

XML को Python में कैसे पार्स करें (10 तरीके + उदाहरण)

Michael Lee
Michael Lee

Expert Network Defense Engineer

24-Sep-2025

Parsing XML एक सामान्य कार्य है Python में, चाहे आप कॉन्फ़िगरेशन फ़ाइलों, वेब स्क्रैपिंग, या APIs के साथ काम कर रहे हों। यह मार्गदर्शिका 10 विभिन्न समाधान प्रदान करती है कोड उदाहरणों, उपयोग मामलों, तुलना तालिकाओं और FAQs के साथ। अंत तक, आप जान जाएंगे कि कौन सा तरीका आपके प्रोजेक्ट के लिए सबसे अच्छा है।


🔹 XML Parsing क्या है?

XML (eXtensible Markup Language) का डेटा स्टोर और ट्रांसपोर्ट करने के लिए व्यापक रूप से उपयोग किया जाता है। XML को पार्सिंग करने का मतलब है XML संरचना को पढ़ना और उपयोगी जानकारी निकालना। Python में, आपके पास इसे प्राप्त करने के लिए कई तरीके हैं, जो अंतर्निहित पुस्तकालयों से लेकर उन्नत ढाँचों तक फैले हुए हैं।


🔹 समाधान 1: xml.etree.ElementTree का उपयोग करना (मानक पुस्तकालय)

python Copy
import xml.etree.ElementTree as ET

xml_data = '''<root><item>सेब</item><item>केला</item></root>'''
root = ET.fromstring(xml_data)

for child in root:
    print(child.tag, child.text)

✅ फायदे: अंतर्निहित, तेज, कोई निर्भरता नहीं।
⚠️ नुकसान: सीमित सत्यापन, जटिल XML के लिए कमजोर।


🔹 समाधान 2: xml.dom.minidom का उपयोग करना

python Copy
from xml.dom import minidom

doc = minidom.parseString('<root><item>सेब</item></root>')
items = doc.getElementsByTagName("item")

for item in items:
    print(item.firstChild.data)

✅ फायदे: सुंदर प्रिंटिंग, उपयोग में सरल।
⚠️ नुकसान: बड़े XML के लिए मेमोरी-भारी।


🔹 समाधान 3: lxml का उपयोग करना

python Copy
from lxml import etree

xml_data = '''<root><item>सेब</item><item>केला</item></root>'''
root = etree.fromstring(xml_data)

for item in root.findall("item"):
    print(item.text)

✅ फायदे: बहुत तेज, XPath समर्थन, सत्यापन।
⚠️ नुकसान: स्थापना की आवश्यकता (pip install lxml)


🔹 समाधान 4: BeautifulSoup का उपयोग करना

python Copy
from bs4 import BeautifulSoup

xml_data = """<root><item>सेब</item><item>केला</item></root>"""
soup = BeautifulSoup(xml_data, "xml")

for item in soup.find_all("item"):
    print(item.text)

✅ फायदे: शुरुआती लोगों के लिए अनुकूल, लचीली पार्सिंग।
⚠️ नुकसान: lxml से धीमा।


🔹 समाधान 5: defusedxml का उपयोग करना (सुरक्षित पार्सिंग)

python Copy
from defusedxml.ElementTree import fromstring

xml_data = '<root><item>सेब</item></root>'
root = fromstring(xml_data)

for child in root:
    print(child.text)

✅ फायदे: XML कमजोरियों (XXE, बिलियन हंस) को रोकता है।
⚠️ नुकसान: सीमित सुविधाएँ।


🔹 समाधान 6: xmltodict का उपयोग करना

python Copy
import xmltodict

xml_data = """<root><item>सेब</item><item>केला</item></root>"""
parsed = xmltodict.parse(xml_data)

print(parsed["root"]["item"])

✅ फायदे: सीधे XML → Python dict में परिवर्तित करता है।
⚠️ नुकसान: बड़े XML के लिए आदर्श नहीं।


🔹 समाधान 7: pandas का उपयोग करना

python Copy
import pandas as pd

xml_data = """<root><row><name>जॉन</name></row><row><name>जेन</name></row></root>"""
df = pd.read_xml(xml_data)
print(df)

✅ फायदे: डेटा विश्लेषण के लिए उत्तम।
⚠️ नुकसान: संरचित XML की आवश्यकता।


🔹 समाधान 8: Regex का उपयोग करना (अनुशंसित नहीं)

python Copy
import re

xml_data = '<root><item>सेब</item><item>केला</item></root>'
items = re.findall(r'<item>(.*?)</item>', xml_data)
print(items)

✅ फायदे: त्वरित हैक।
⚠️ नुकसान: नाजुक, नेस्टेड/जटिल XML पर टूटता है।


🔹 समाधान 9: Scrapy का उपयोग करना (वेब क्रॉलिंग के लिए)

python Copy
import scrapy

class XMLSpider(scrapy.Spider):
    name = "xml_spider"
    start_urls = ["https://example.com/data.xml"]

    def parse(self, response):
        for item in response.xpath("//item/text()").getall():
            yield {"item": item}

✅ फायदे: स्केलेबल, XML फ़ीड को स्क्रैप करने के लिए महान।
⚠️ नुकसान: सरल पार्सिंग के लिए अधिक।


🔹 समाधान 10: Scrapeless API का उपयोग करना (सर्वश्रेष्ठ विकल्प)

अपने पार्सिंग लॉजिक को स्वचालित रखने के बजाय, आप Scrapeless Scraping Browser का उपयोग कर सकते हैं। यह स्वचालित रूप से:

  • गतिशील सामग्री को संभालता है
  • संरचित डेटा को निकालता है (JSON, XML)
  • एंटी-बॉट सुरक्षा को बायपास करता है
python Copy
import requests

url = "https://api.scrapeless.com/xml-extract"
payload = {"url": "https://example.com/data.xml"}

response = requests.post(url, json=payload)
print(response.json())

✅ फायदे: कोई सेटअप नहीं, मजबूत, स्केलेबल।
⚠️ नुकसान: भुगतान सेवा।


🔹 तुलना तालिका

विधि उपयोग में आसानी गति सुरक्षा सर्वश्रेष्ठ किसके लिए
ElementTree ⭐⭐⭐ तेज सरल XML
minidom ⭐⭐ मध्यम सुंदर प्रिंटिंग
lxml ⭐⭐⭐⭐ बहुत तेज जटिल XML, XPath
BeautifulSoup ⭐⭐⭐ धीमा शुरुआती लोग
defusedxml ⭐⭐ मध्यम सुरक्षित पार्सिंग
xmltodict ⭐⭐⭐⭐ तेज डिक्ट रूपांतरण
pandas ⭐⭐⭐ मध्यम डेटा विश्लेषण
Regex तेज केवल त्वरित हैक
Scrapy ⭐⭐⭐ मध्यम क्रॉलिंग फ़ीड्स
Scrapeless API ⭐⭐⭐⭐ बहुत तेज़ उद्यम-गुणवत्ता पार्सिंग

🔹 वास्तविक दुनिया के परिदृश्य

  • कॉन्फ़िग फ़ाइलेंElementTree
  • बड़े डेटा सेटlxml
  • एपीआईxmltodict
  • डेटा विज्ञानpandas
  • सुरक्षित ऐप्सdefusedxml
  • वेब स्क्रैपिंगScrapy या Scrapeless

🔹 सामान्य प्रश्न

प्रश्न 1: पायथन में XML को पार्स करने का सबसे तेज़ तरीका क्या है?
👉 lxml सबसे तेज़ ओपन-सोर्स समाधान है। Scrapeless API उत्पादन-ग्रेड कार्यों के लिए तेज़ है।

प्रश्न 2: मैं XML सुरक्षा समस्याओं को कैसे रोकूं?
👉 इनपुट को साफ करने के लिए defusedxml या Scrapeless API का उपयोग करें।

प्रश्न 3: क्या मैं XML को सीधे JSON में परिवर्तित कर सकता हूँ?
👉 हाँ, xmltodict या Scrapeless API यह कर सकते हैं।

प्रश्न 4: वेब स्क्रैपिंग के लिए सबसे अच्छा तरीका कौन सा है?
👉 छोटे प्रोजेक्ट्स के लिए Scrapy का उपयोग करें, उद्यम आवश्यकताओं के लिए Scrapeless का उपयोग करें।


🔹 संदर्भ


🔹 निष्कर्ष

Python XML को पार्स करने के कई तरीके प्रदान करता है, जैसे कि ElementTree जैसी अंतर्निहित पुस्तकालयों से लेकर lxml और Scrapy जैसी उन्नत समाधानों तक। यदि आपको पैमाना योग्य, सुरक्षित और रखरखाव-मुक्त पार्सिंग की आवश्यकता है, तो Scrapeless स्क्रैपिंग ब्राउज़र का उपयोग करने पर विचार करें।

स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।

सबसे लोकप्रिय लेख

सूची