Fish Shell:
HTML parsen

Wie geht das:

Die Fish Shell ist vorwiegend nicht dafür ausgelegt, HTML direkt zu parsen. Sie zeichnet sich jedoch durch das Verknüpfen von Unix-Tools wie curl, grep, sed, awk aus oder durch die Verwendung von spezialisierten Tools wie pup oder beautifulsoup in einem Python-Skript. Unten sind Beispiele aufgeführt, die zeigen, wie diese Tools innerhalb der Fish Shell genutzt werden können, um HTML zu parsen.

Verwendung von curl und grep:

HTML-Inhalte abrufen und Zeilen extrahieren, die Links enthalten:

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

Ausgabe:

/page1.html
/page2.html
...

Verwendung von pup (ein Befehlszeilen-Tool zum Parsen von HTML):

Stellen Sie zunächst sicher, dass pup installiert ist. Dann können Sie es verwenden, um Elemente nach ihren Tags, IDs, Klassen usw. zu extrahieren.

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

Die Ausgabe ähnelt dem grep-Beispiel und würde href-Attribute von <a>-Tags auflisten.

Mit einem Python-Skript und beautifulsoup:

Während die Fish-Shell an sich kein HTML nativ parsen kann, integriert sie sich nahtlos mit Python-Skripten. Unten ist ein prägnantes Beispiel, das Python mit BeautifulSoup verwendet, um Titel aus HTML zu parsen und zu extrahieren. Stellen Sie sicher, dass beautifulsoup4 und requests in Ihrer Python-Umgebung installiert sind.

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

Verwendung:

parse_html 'https://example.com'

Ausgabe:

Beispiel Domäne

Jede dieser Methoden dient verschiedenen Anwendungsfällen und Komplexitätsstufen, von einfacher Befehlszeilentextmanipulation bis zur vollen Parsing-Leistung von beautifulsoup in Python-Skripten. Je nach Ihren Bedürfnissen und der Komplexität der HTML-Struktur können Sie eine einfache Unix-Pipeline oder einen leistungsfähigeren Skripting-Ansatz wählen.