Fish Shell:
פיענוח HTML

איך לעשות:

בעיקר, קליפת Fish אינה מיועדת לפיענוח HTML באופן ישיר. עם זאת, היא מצטיינת בהדבקת כלים של Unix כמו curl, grep, sed, awk, או שימוש בכלים מתמחים כמו pup או beautifulsoup בתסריט Python. להלן דוגמאות הממחישות איך לנצל את הכלים האלה מתוך קליפת Fish כדי לפענח HTML.

שימוש ב-curl ו-grep:

להוציא תוכן HTML ולחלץ שורות המכילות קישורים:

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

פלט:

/page1.html
/page2.html
...

שימוש ב-pup (כלי שורת פקודה לפיענוח HTML):

ראשית, ודא ש-pup מותקן. לאחר מכן תוכל להשתמש בו לחלץ אלמנטים לפי התגיות, ids, כיתות וכולי.

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

הפלט, דומה לדוגמה של grep, היה מפרט את מאפייני href של תגיות <a>.

באמצעות תסריט Python ו-beautifulsoup:

למרות ש-Fish עצמה לא יכולה לפענח HTML באופן טבעי, היא משתלבת ללא תקלות עם תסריטי Python. להלן דוגמה תמציתית המשתמשת ב-Python עם BeautifulSoup כדי לפרש ולחלץ כותרות מ-HTML. ודא ש-beautifulsoup4 ו-requests מותקנים בסביבת ה-Python שלך.

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 בתסריטי Python. בהתאם לצרכים שלך ולמורכבות של מבנה ה-HTML, תוכל לבחור בגישת Unix הישירה או בגישת תסריט עוצמתית יותר.