Go로 웹 스크래핑
사전 준비
다음 명령으로 라이브러리를 설치하십시오.
go get -u github.com/PuerkitoBio/goquery
사용법
방법의 순서로서 이하의 순서로 합니다.
1. URL 정보 추출
2. 프로그램 작성
3. 실행
URL 정보 추출
먼저 스크래핑하려는 URL을 결정해야 합니다.
이번에는 Amazon의 본 검색에서 ISBM을 검색할 때 가장 먼저 온 데이터에서 제목을 추출하도록 하겠습니다.
닛케이 리눅스 2020 7월 ISBM은 4910071930709에 대한 4910071930709에서 검색합니다.
검색 URL
브라우저의 F12 등을 사용하여 개발자 도구로 제목 부분의 HTML 정보를 확인합시다.
위의 그림을 보면 제목 부분의 정보에서 사용되는 CSS의 정보는 .a-size-medium.a-color-base.a-text-normal이라는 것을 알 수 있습니다.
이것을 키워드로 검색합시다.
Go의 코드 작성
아래와 같이 기재합니다.
main.gopackage main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
)
func main() {
isbm := "4910071930709"
url := "https://www.amazon.co.jp/s?k=" + isbm + "&i=stripbooks"
doc, err := goquery.NewDocument(url)
if err != nil {
fmt.Println(err.Error())
}
doc.Find(".a-size-medium.a-color-base.a-text-normal").Each(func(i int, s *goquery.Selection) {
if i == 0 {
fmt.Println(s.Text())
}
})
}
프로그램의 순서를 간단히 설명하면 다음 순서가 됩니다.
1. 스크래핑 대상의 URL을 결정한다
2. URL에서 데이터 가져오기
3. .a-size-medium.a-color-base.a-text-normal 클래스의 데이터 추출
4. 가장 먼저 추출한 데이터 내의 텍스트만 출력
실행 결과
실행하면 다음과 같은 결과를 얻을 수 있습니다.
$ go run main.go
日経Linux(リナックス) 2020年7月号
또한, 같은 사용되고 href = 결과를 얻고 싶을 때,
urldata := s.Attr("href")
등이라고 기재하면 취득할 수 있습니다.
Reference
이 문제에 관하여(Go로 웹 스크래핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/karosuwindam/items/886b11113a57423bc06c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
go get -u github.com/PuerkitoBio/goquery
방법의 순서로서 이하의 순서로 합니다.
1. URL 정보 추출
2. 프로그램 작성
3. 실행
URL 정보 추출
먼저 스크래핑하려는 URL을 결정해야 합니다.
이번에는 Amazon의 본 검색에서 ISBM을 검색할 때 가장 먼저 온 데이터에서 제목을 추출하도록 하겠습니다.
닛케이 리눅스 2020 7월 ISBM은 4910071930709에 대한 4910071930709에서 검색합니다.
검색 URL
브라우저의 F12 등을 사용하여 개발자 도구로 제목 부분의 HTML 정보를 확인합시다.
위의 그림을 보면 제목 부분의 정보에서 사용되는 CSS의 정보는 .a-size-medium.a-color-base.a-text-normal이라는 것을 알 수 있습니다.
이것을 키워드로 검색합시다.
Go의 코드 작성
아래와 같이 기재합니다.
main.go
package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
)
func main() {
isbm := "4910071930709"
url := "https://www.amazon.co.jp/s?k=" + isbm + "&i=stripbooks"
doc, err := goquery.NewDocument(url)
if err != nil {
fmt.Println(err.Error())
}
doc.Find(".a-size-medium.a-color-base.a-text-normal").Each(func(i int, s *goquery.Selection) {
if i == 0 {
fmt.Println(s.Text())
}
})
}
프로그램의 순서를 간단히 설명하면 다음 순서가 됩니다.
1. 스크래핑 대상의 URL을 결정한다
2. URL에서 데이터 가져오기
3. .a-size-medium.a-color-base.a-text-normal 클래스의 데이터 추출
4. 가장 먼저 추출한 데이터 내의 텍스트만 출력
실행 결과
실행하면 다음과 같은 결과를 얻을 수 있습니다.
$ go run main.go
日経Linux(リナックス) 2020年7月号
또한, 같은 사용되고 href = 결과를 얻고 싶을 때,
urldata := s.Attr("href")
등이라고 기재하면 취득할 수 있습니다.
Reference
이 문제에 관하여(Go로 웹 스크래핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/karosuwindam/items/886b11113a57423bc06c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ go run main.go
日経Linux(リナックス) 2020年7月号
Reference
이 문제에 관하여(Go로 웹 스크래핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/karosuwindam/items/886b11113a57423bc06c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)