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