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.