Bash:
HTML विश्लेषण

कैसे करें:

Bash HTML पार्सिंग के लिए पहली पसंद नहीं होती, लेकिन grep, awk, sed, या बाहरी उपकरणों जैसे lynx के साथ इसे करना संभव है। ठोसता के लिए, हम libxml2 पैकेज से xmllint का उपयोग करेंगे।

# यदि आवश्यक हो तो xmllint स्थापित करें
sudo apt-get install libxml2-utils

# नमूना HTML
cat > sample.html <<EOF
<html>
<head>
  <title>नमूना पेज</title>
</head>
<body>
  <h1>नमस्ते, Bash!</h1>
  <p id="myPara">Bash मुझे पढ़ सकता है।</p>
</body>
</html>
EOF

# शीर्षक पार्स करें
title=$(xmllint --html --xpath '//title/text()' sample.html 2>/dev/null)
echo "शीर्षक है: $title"

# आईडी द्वारा पैराग्राफ निकालें
para=$(xmllint --html --xpath '//*[@id="myPara"]/text()' sample.html 2>/dev/null)
echo "पैराग्राफ सामग्री है: $para"

आउटपुट:

शीर्षक है: नमूना पेज
पैराग्राफ सामग्री है: Bash मुझे पढ़ सकता है।

गहराई से

पहले के दिनों में, प्रोग्रामर HTML को स्कैन करने के लिए grep जैसे regex-आधारित उपकरणों का उपयोग करते थे, लेकिन वह अव्यावहारिक था। HTML नियमित नहीं होता—वह संदर्भिक होता है। पारंपरिक उपकरण इसे मिस कर देते हैं और त्रुटि से भरे हो सकते हैं।

विकल्प? ढेर सारे। पायथन के साथ Beautiful Soup, PHP के साथ DOMDocument, जावास्क्रिप्ट के साथ DOM पार्सर्स—HTML की संरचना को समझने के लिए डिज़ाइन की गई भाषाएँ और लाइब्रेरी।

बैश स्क्रिप्ट में xmllint का उपयोग सरल कार्यों के लिए मजबूत होता है। यह XML को समझता है, और इस विस्तार से, XHTML भी। नियमित HTML अप्रत्याशित हो सकता है, भले ही। यह हमेशा XML के सख्त नियमों का पालन नहीं करता। xmllint HTML को XML मॉडल में जबरदस्ती डालता है जो अच्छी तरह से बनाई गई HTML के लिए अच्छा काम करता है लेकिन अव्यवस्थित सामग्री पर ठोकर खा सकता है।

यह भी देखें