Fish Shell:
HTML 파싱

어떻게:

주로, Fish shell은 직접적으로 HTML을 파싱하기 위해 설계되지 않았습니다. 하지만, curl, grep, sed, awk 같은 Unix 도구들을 함께 사용하거나, pup 또는 Python 스크립트에서 beautifulsoup 같은 전문 도구를 사용하는데 뛰어납니다. 아래 예제들은 Fish shell 내에서 이러한 도구들을 이용하여 HTML을 파싱하는 방법을 보여줍니다.

curlgrep 사용하기:

HTML 컨텐츠를 가져와 링크가 포함된 줄을 추출합니다:

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

출력:

/page1.html
/page2.html
...

pup 사용하기 (HTML을 파싱하기 위한 커맨드라인 도구):

먼저, pup이 설치되어 있는지 확인합니다. 그런 다음 태그, id, 클래스 등으로 요소를 추출할 수 있습니다.

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

출력은 grep 예제와 유사하게, <a> 태그의 href 속성을 나열합니다.

Python 스크립트와 beautifulsoup 사용하기:

Fish 자체는 네이티브로 HTML을 파싱할 수 없지만, Python 스크립트와는 원활하게 통합됩니다. 아래는 Python과 BeautifulSoup을 사용하여 HTML에서 타이틀을 파싱하고 추출하는 간결한 예제입니다. Python 환경에 beautifulsoup4requests가 설치되어 있는지 확인하세요.

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

사용법:

parse_html 'https://example.com'

출력:

Example Domain

이러한 각각의 방법은 간단한 커맨드라인 텍스트 조작부터 Python 스크립트에서 beautifulsoup의 전체 파싱 파워에 이르기까지, 다양한 사용 사례와 복잡성의 스케일을 지원합니다. HTML 구조의 복잡성과 필요에 따라, 당신은 단순한 Unix 파이프라인이나 더 강력한 스크립팅 접근법을 선택할 수 있습니다.