[go] HTML 속성 값 추출

HTML 문서에서 특정 속성의 값을 추출하는 것은 웹 스크래핑 및 데이터 수집과 관련된 많은 작업에서 필요한 과정입니다. 예를 들어, 웹 페이지에서 특정 링크의 URL이나 이미지의 소스 경로를 추출하는 경우에 사용될 수 있습니다.

아래의 예시는 Go 언어를 사용하여 HTML 문서에서 특정 속성의 값을 추출하는 방법을 보여줍니다.

HTML 문서에서 속성 값 추출하기

package main

import (
	"fmt"
	"strings"
	"golang.org/x/net/html"
)

func extractAttributeValue(n *html.Node, attr string) (value string) {
	if n.Type == html.ElementNode {
		for _, a := range n.Attr {
			if a.Key == attr {
				value = a.Val
			}
		}
	}
	for c := n.FirstChild; c != nil && value == ""; c = c.NextSibling {
		value = extractAttributeValue(c, attr)
	}
	return value
}

func main() {
	htmlData := `<a href="https://example.com">Example Link</a>`
	doc, _ := html.Parse(strings.NewReader(htmlData))
	attrValue := extractAttributeValue(doc, "href")
	fmt.Println(attrValue) // Output: https://example.com
}

위의 예시는 golang.org/x/net/html 패키지를 사용하여 HTML 문서에서 특정 속성의 값을 추출합니다. extractAttributeValue 함수는 재귀적으로 HTML 노드를 탐색하면서 원하는 속성의 값을 찾아 반환합니다.

어떤 HTML 속성의 값을 추출할지를 지정하고, 해당 값이 포함된 노드를 찾는 방법은 속성과 HTML 문서의 구조에 따라 다를 수 있습니다. 위의 예시에서는 href 속성을 추출하였으나, 다른 속성이나 다른 HTML 문서 구조에 맞게 코드를 수정하여 사용하실 수 있습니다.