[go] 웹 사이트의 이미지 스크래핑하기
이번에는 Golang을 사용하여 웹 사이트의 이미지를 스크래핑하는 방법을 알아보겠습니다. 이미지 스크래핑에는 goquery
패키지를 사용할 것이며, 다음과 같은 단계로 진행될 것입니다.
- 웹 사이트에서 HTML을 가져온다.
- HTML에서 이미지 URL을 추출한다.
- 이미지를 다운로드한다.
1. 웹 사이트에서 HTML 가져오기
우선, net/http 패키지를 이용하여 웹 사이트에서 HTML을 가져옵니다.
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
url := "https://example.com"
response, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
// response.Body를 읽어서 처리합니다.
// 본 예제에서는 goquery를 사용할 것입니다.
}
2. HTML에서 이미지 URL 추출하기
이제 goquery를 이용하여 HTML에서 이미지 URL을 추출합니다.
package main
import (
"github.com/PuerkitoBio/goquery"
"log"
"net/http"
)
func main() {
url := "https://example.com"
response, err := http.Get(url)
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
doc, err := goquery.NewDocumentFromReader(response.Body)
if err != nil {
log.Fatal(err)
}
// 이미지 URL을 추출하고 처리합니다.
}
3. 이미지 다운로드하기
마지막으로, 이미지 URL을 이용하여 이미지를 다운로드합니다.
package main
import (
"io"
"net/http"
"os"
)
func main() {
imageUrl := "https://example.com/image.jpg"
response, err := http.Get(imageUrl)
if err != nil {
// error handling
}
defer response.Body.Close()
file, err := os.Create("image.jpg")
if err != nil {
// error handling
}
defer file.Close()
_, err = io.Copy(file, response.Body)
if err != nil {
// error handling
}
}
이제 모든 단계가 마무리되었으며, 이미지 스크래핑을 성공적으로 완료하였습니다. 위의 예제들을 조합하여 원하는 웹 사이트에서 이미지를 스크래핑해보세요.