Fish Shell:
HTML विश्लेषण

कैसे:

फिश शेल मुख्य रूप से HTML को सीधे पार्स करने के लिए नहीं बनाया गया है। हालाँकि, यह curl, grep, sed, awk जैसे Unix औजारों को एक साथ जोड़ने या pup या पायथन स्क्रिप्ट में beautifulsoup जैसे विशेषज्ञ उपकरणों का उपयोग करने में उत्कृष्ट है। नीचे उदाहरणों में दिखाया गया है कि कैसे फिश शेल के भीतर से इन उपकरणों का लाभ उठाकर HTML को पार्स किया जाए।

curl और grep का उपयोग करते हुए:

HTML सामग्री लाना और उन पंक्तियों को निकालना जिसमें लिंक्स होते हैं:

curl -s https://example.com | grep -oP '(?<=href=")[^"]*'

आउटपुट:

/page1.html
/page2.html
...

pup (HTML पार्सिंग के लिए एक कमांड-लाइन टूल) का उपयोग करते हुए:

पहले, सुनिश्चित करें कि pup स्थापित है। फिर आप इसका उपयोग उनके टैग्स, आईडी, क्लासेज, आदि से तत्वों को निकालने के लिए कर सकते हैं।

curl -s https://example.com | pup 'a attr{href}'

आउटपुट, grep उदाहरण के समान, <a> टैग्स के href अट्रिब्यूट्स को सूचीबद्ध करेगा।

पायथन स्क्रिप्ट और beautifulsoup के साथ:

जबकि फिश स्वयं HTML को मूल रूप से पार्स नहीं कर सकता, यह पायथन स्क्रिप्ट्स के साथ बिना किसी बाधा के एकीकृत करता है। नीचे एक संक्षिप्त उदाहरण है जो पायथन के साथ BeautifulSoup का उपयोग करके HTML से शीर्षकों को पार्स और निकालता है। सुनिश्चित करें कि आपके पायथन वातावरण में beautifulsoup4 और requests स्थापित हैं।

parse_html.fish

function parse_html -a url
    python -c "
import sys
import requests
from bs4 import BeautifulSoup

response = requests.get(sys.argv[1])
soup = BeautifulSoup(response.text, 'html.parser')

titles = soup.find_all('title')

for title in titles:
    print(title.get_text())
" $url
end

उपयोग:

parse_html 'https://example.com'

आउटपुट:

Example Domain

ये प्रत्येक विधियाँ विभिन्न उपयोग के मामलों और जटिलता के पैमाने, साधारण कमांड-लाइन टेक्स्ट मैनिपुलेशन से लेकर पायथन स्क्रिप्ट्स में beautifulsoup की पूरी पार्सिंग शक्ति तक सेवा प्रदान करती हैं। आपकी आवश्यकताओं और HTML संरचना की जटिलता के आधार पर, आप एक सरल Unix पाइपलाइन या एक अधिक शक्तिशाली स्क्रिप्टिंग दृष्टिकोण चुन सकते हैं।