Go로 웹 스크래핑

3913 단어 5

사전 준비



다음 명령으로 라이브러리를 설치하십시오.
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") 등이라고 기재하면 취득할 수 있습니다.

좋은 웹페이지 즐겨찾기