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 або більш потужний скриптовий підхід.