Fish Shell:
Аналіз HTML

Як робити:

Переважно, Fish shell не призначена для безпосереднього парсингу HTML. Проте, вона відмінно справляється з об’єднанням інструментів Unix таких як curl, grep, sed, awk, або використанням спеціалізованих інструментів як pup чи beautifulsoup в Python скрипті. Нижче наведено приклади, що демонструють, як використовувати ці інструменти з Fish shell для парсингу 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, буде перелічувати атрибути href тегів <a>.

З Python скриптом та beautifulsoup:

Хоча Fish сам по собі не може парсити HTML нативно, він безпроблемно інтегрується з Python скриптами. Нижче наведено стислий приклад, що використовує Python з BeautifulSoup для парсингу та витягу назв з HTML. Переконайтеся, що у вашому Python середовищі встановлені 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 в Python скриптах. Залежно від ваших потреб і складності структури HTML, можна обрати прямолінійний Unix pipeline або більш потужний скриптовий підхід.