Fish Shell:
Analiza składniowa HTML

Jak to zrobić:

Shell Fish, przede wszystkim, nie jest zaprojektowany do bezpośredniego parsowania HTML. Jednak świetnie sprawdza się w łączeniu narzędzi Unix, takich jak curl, grep, sed, awk, lub w wykorzystaniu specjalistycznych narzędzi takich jak pup czy beautifulsoup w skrypcie Python. Poniżej znajdują się przykłady, które pokazują, jak wykorzystać te narzędzia w obrębie shella Fish do parsowania HTML.

Wykorzystanie curl i grep:

Pobieranie treści HTML i ekstrahowanie linii zawierających linki:

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

Wyjście:

/page1.html
/page2.html
...

Użycie pup (narzędzia wiersza poleceń do parsowania HTML):

Najpierw upewnij się, że pup jest zainstalowany. Następnie możesz go użyć do ekstrahowania elementów po ich tagach, identyfikatorach, klasach itp.

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

Wyjście, podobnie jak w przypadku przykładu z grep, wylistuje atrybuty href tagów <a>.

Z skryptem Pythona i beautifulsoup:

Mimo że Fish sam w sobie nie może parsować HTML natywnie, bezproblemowo integruje się ze skryptami Pythona. Poniżej znajduje się zwięzły przykład wykorzystania Pythona z BeautifulSoup do parsowania i ekstrakcji tytułów z HTML. Upewnij się, że masz zainstalowane beautifulsoup4 oraz requests w swoim środowisku Pythona.

parse_html.fish

function parse_html -a url
    python -c "
import sys
import requests
from bs4 import BeautifulSoup

odpowiedz = requests.get(sys.argv[1])
zupa = BeautifulSoup(odpowiedz.text, 'html.parser')

tytuly = zupa.find_all('title')

for title in tytuly:
    print(title.get_text())
" $url
end

Użycie:

parse_html 'https://example.com'

Wyjście:

Przykładowa Domena

Każda z tych metod służy różnym przypadkom użycia i skalom złożoności, od prostych manipulacji tekstem w wierszu poleceń po pełną moc parsowania beautifulsoup w skryptach Pythona. W zależności od twoich potrzeb i złożoności struktury HTML, możesz wybrać prosty pipeline Unix lub potężniejsze podejście skryptowe.