スクレイピング等を行う場合、スクリプト言語が大きく威力を発揮します。 例えばブログの様にタイトルと本文の組が反復される様なページをスクレイピングする場合 URLからHTMLを得る HTMLからDOMオブジェクトを得る エントリとなるDOMノードを検索する エントリノードでループする エントリノードからタイトルとなるDOMノードを探索しテキストを得る エントリノードから本文となるDOMノードを探索しテキストを得る この様になるかと思います。こういった処理を一般的なコンパイル型言語を使って実行しようとすると エラーチェック 反復処理 検索処理 といったコードをゴリゴリ書かなければいけなかったりします。もちろんそれ専用のライブラリを使えば出来きますが、コンパイル型言語ではなかなか良い物がないのは事実です。javascriptに到っては jQuery を使えば簡単に出来ますが、コンパイル型言語向け
package main import ( "github.com/PuerkitoBio/goquery" "fmt" ) func main() { doc, err := goquery.NewDocument("https://github.com/PuerkitoBio/goquery") if err != nil { fmt.Print("url scarapping failed") } doc.Find("a").Each(func(_ int, s *goquery.Selection) { url, _ := s.Attr("href") fmt.Println(url) }) }
はじめに こんにちは、Go界の大杉漣です。いま、辻堂で合宿をしています。 xmlpathパッケージ GoでHTMLをパースしてごにょごにょしたいというときはgoqueryを使うことが多いですが、個人的にはあのコールバック書きまくるスタイルが好きではなく「そこまでjQueryの真似しなくてもいいだろ」と思っていました。 goquery - GoDoc またPythonで割とlxmlを使っていたこともあって、XPathを使うのが好きだったのでGoにも同様のXPathを扱えるパッケージがないかと探してみたらCanonical製のxmlpathというパッケージがありました。 xmlpath - GoDoc 使い方 めちゃくちゃ楽。ドキュメントにあるサンプルだとちょっと実用性がないので、もう少し実用性のある例。 resp, _ := http.Get("http://sample.com/conte
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く