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 הישירה או בגישת תסריט עוצמתית יותר.