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
endUżycie:
parse_html 'https://example.com'Wyjście:
Przykładowa DomenaKaż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.