あきき☆エンジニア

〜ぷろぐらむ〜(perl,php,JavaScript,WebGL,golang,emacs,mysql)

goquery(go版のjQuery)を簡単に使ってみる

golangで簡単にhtmlから情報を取得できたらと検索していたら

https://github.com/PuerkitoBio/goqueryが見つかった

早速入れて使ってみた

package main

import (
    "fmt"
    "github.com/PuerkitoBio/goquery"
)

func main() {
    doc, err := goquery.NewDocument("http://akiki0106.hatenablog.com/")
    if err != nil {
        panic(err)
    }
    
    doc.Find(".entry-title a").Each(func(i int, s *goquery.Selection) {
        u, ok := s.Attr("href")
        if ok {
            t := s.Text()
            fmt.Printf("%s\n  %s\n", u, t)
        }
    })
}

実行結果 (記事のurlとタイトルを取得してみた)

http://akiki0106.hatenablog.com/entry/2017/11/17/235037
  VMware Workstation 12 Playerが更新されてので入れてみた(12.5.8)
http://akiki0106.hatenablog.com/entry/2017/05/10/201502
  Windowsの(大きい更新)をしたらVMwareでネットワークが繋がらなくなった!
http://akiki0106.hatenablog.com/entry/2017/03/25/174630
  ローカルテストサーバー(phpでビルトインサーバー)起動
http://akiki0106.hatenablog.com/entry/2017/03/25/132701
  perlスクリプトのexe化をやってみる
http://akiki0106.hatenablog.com/entry/2017/03/17/193203
  chromeでJavaScript編集しファイルへ反映(DevTools Autosave)
http://akiki0106.hatenablog.com/entry/2017/03/12/172444
  古いpc(古いグラフィックボード)でcanvasの表示が化ける
http://akiki0106.hatenablog.com/entry/2017/03/10/113800
  indexedDB(ストレージ)のデバッグ表示

目的の情報にたどり着く指定方法は、 jQueryと同じようにできるよう
なのでjQueryでどう書けば目的にたどり着くかを検索して
メソッド名の頭だけ大文字にすればできるかと思います~

Attrは、2つ戻り値があったりしますが該当メソッドのソースを見れば見当が付くかと思います