Go言語[Golang]サイトマップからURL(loc)を取得するコード

Share on:

この記事は約1 分で読めます。

目次

goqueryパッケージのインストール

1$ go get github.com/PuerkitoBio/goquery

サイトマップのURL(loc)を配列に格納する

 1package main
 2
 3import (
 4	"fmt"
 5	"github.com/PuerkitoBio/goquery"
 6)
 7
 8func main() {
 9	url := "https://lancers.work/sitemap.xml"
10	doc, err := goquery.NewDocument(url)
11	if err != nil {
12		panic(err)
13	}
14
15	var link = []string{}
16	doc.Find("loc").Each(func(_ int, s *goquery.Selection) {
17		link = append(link, s.Text())
18	})
19
20	fmt.Println(link)
21}

実行結果

1[https://lancers.work/tags/vmware/ https://lancers.work/vmware-esxi65-realtek-nic/ ・・・ https://lancers.work/pref-city-form-jquery-json/ https://lancers.work/hexo-nodejs-blog/]

解説

  • サイトマップファイルをスクレイピングするためgoqueryパッケージを使用
  • locの取得
  • locは複数あることが多いためEach文で回しながらsで受け取り、sのText()(URL)を取得しています。
  • 取得したURLはappendで配列に追加していきます。

応用

以下の過去記事と組み合わせると、ランダムにブログ記事のURLを取得して定期的にツイートすることができます。