Fish Shell:
Analysering av HTML
Hvordan:
Fish shell er, fremfor alt, ikke designet for direkte parsing av HTML. Det utmerker seg imidlertid ved å lime sammen Unix-verktøy som curl
, grep
, sed
, awk
, eller ved å bruke spesialiserte verktøy som pup
eller beautifulsoup
i et Python-script. Nedenfor er eksempler som viser hvordan du kan utnytte disse verktøyene innenfor Fish shell for å parse HTML.
Bruke curl
og grep
:
Hente HTML-innhold og trekke ut linjer som inneholder lenker:
curl -s https://example.com | grep -oP '(?<=href=")[^"]*'
Utdata:
/page1.html
/page2.html
...
Bruke pup
(et kommandolinjeverktøy for parsing av HTML):
Først, sørg for at pup
er installert. Deretter kan du bruke det til å trekke ut elementer ved deres tagger, id-er, klasser, osv.
curl -s https://example.com | pup 'a attr{href}'
Utdata, likt grep
-eksemplet, ville listet href-attributter til <a>
-taggene.
Med et Python-script og beautifulsoup
:
Selv om Fish i seg selv ikke kan parse HTML på en naturlig måte, integreres det sømløst med Python-script. Nedenfor er et kort eksempel som bruker Python med BeautifulSoup
for å parse og trekke ut titler fra HTML. Pass på at du har beautifulsoup4
og requests
installert i ditt Python-miljø.
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
Bruk:
parse_html 'https://example.com'
Utdata:
Eksempeldomene
Hver av disse metodene tjener forskjellige bruksområder og kompleksitetsnivåer, fra enkel tekstmanipulering på kommandolinjen til den fulle parsingkraften av beautifulsoup
i Python-skript. Avhengig av dine behov og kompleksiteten til HTML-strukturen, kan du velge en enkel Unix-pipeline eller en kraftigere skripttilnærming.