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つ戻り値があったりしますが該当メソッドのソースを見れば見当が付くかと思います