Fish Shell:
Analisi del HTML

Come fare:

La shell Fish, prevalentemente, non è progettata per il parsing HTML direttamente. Tuttavia, eccelle nel collegare insieme strumenti Unix come curl, grep, sed, awk, o nell’utilizzo di strumenti specializzati come pup o beautifulsoup in uno script Python. Di seguito sono riportati esempi che illustrano come sfruttare questi strumenti all’interno della shell Fish per fare il parsing di HTML.

Utilizzando curl e grep:

Recuperare contenuti HTML ed estrarre le righe che contengono link:

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

Output:

/page1.html
/page2.html
...

Utilizzando pup (uno strumento da riga di comando per il parsing di HTML):

Prima, assicurati che pup sia installato. Poi puoi usarlo per estrarre elementi tramite i loro tag, id, classi, ecc.

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

Output, simile all’esempio grep, elencherà gli attributi href dei tag <a>.

Con uno script Python e beautifulsoup:

Anche se Fish di per sé non può fare il parsing di HTML nativamente, si integra perfettamente con gli script Python. Di seguito è riportato un esempio conciso che utilizza Python con BeautifulSoup per fare il parsing ed estrarre titoli da HTML. Assicurati di avere beautifulsoup4 e requests installati nel tuo ambiente Python.

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

Utilizzo:

parse_html 'https://example.com'

Output:

Esempio di dominio

Ciascuno di questi metodi serve casi d’uso e scale di complessità diverse, dalla semplice manipolazione di testo da riga di comando al pieno potere di parsing di beautifulsoup negli script Python. A seconda delle tue esigenze e della complessità della struttura HTML, potresti scegliere un semplice pipeline Unix o un approccio di scripting più potente.