私は解析したいHTMLテーブルを持っています。次のようなもの http://sprunge.us/IJUC しかし、私は情報を解析する良い方法は不明です。私はいくつかのhtmlパーサを見たことがありますが、それらはすべて、あなたがそれを解析するための特別なタグを持っている必要があるようです。しかし、私の情報の大部分は、<td></td>
GoパースHTMLテーブル
この情報を解析するための提案はありますか?
http://golang.org/pkg/encoding/xml/
私は解析したいHTMLテーブルを持っています。次のようなもの http://sprunge.us/IJUC しかし、私は情報を解析する良い方法は不明です。私はいくつかのhtmlパーサを見たことがありますが、それらはすべて、あなたがそれを解析するための特別なタグを持っている必要があるようです。しかし、私の情報の大部分は、<td></td>
GoパースHTMLテーブル
この情報を解析するための提案はありますか?
http://golang.org/pkg/encoding/xml/
恥知らずなプラグイン::マイgoqueryライブラリあなたのHTMLがよく形成されている場合に
は、あなたは組み込みのXMLパーサーを使用することができます。これはGoに渡されたjQueryの構文です(Goのexperimental html packageが必要です、ライブラリのREADMEの説明を参照してください)。
だから、あなたがそのようなことを行うことができます(あなたのHTMLドキュメントがドキュメントにロードされている*goquery.Document
を想定):
doc.Find("td").Each(func (i int, s *goquery.Selection) {
fmt.Printf("Content of cell %d: %s\n", i, s.Text())
})
編集:例のdoc.Find
に変更doc.Root.Find
goquery文書があまりにも今の選択であるために(v0.2デベロッパー/ masterブランチの新機能)
すべてはあなたが
@sorcix整形式のHTMLはXMLではありません。あなたはHTMLとXHTMLを混同していますか? –
あなたはまた、ゴーの実験的なHTMLパーサに興味がある可能性があり: https://code.google.com/p/go.net/html
パッケージdefini godocに従ってン:
パッケージのHTMLは
HTML5準拠のトークナイザとパーサーを実装し、私はそれを自分自身を使用していないが、それはかなりストレートなようだ:
構文解析は、io.Readerを使用してParseを呼び出すことによって行われます。io.Readerは、解析ツリーのルート(ノード)として ルートを返します。 ReaderがUTF-8 エンコードされたHTMLを提供することを確認するのは、 発信者の責任です。
go get code.google.com/p/go.net/html
import "code.google.com/p/go.net/html"
doc, err := html.Parse(r)
これは、任意の現在のリリースの一部ではありませんが、あなたはソースからインストール、またはgolang-先端Ubuntuのaptのリポジトリを使用し場合に使用することができます。
EDIT:あなたがここにも実験的な囲碁パッケージの次ミラーを使用することができます:XMLパッケージを使用してについての私が見https://github.com/kless/go-exp
go get github.com/kless/go-exp/html
import (
"github.com/kless/go-exp/html"
)
このパッケージをいつ標準libに昇格させる予定ですか? – djhworld
実験的なHTMLパーサーがhttps://code.google.com/p/go/source/browse?repo=netに移動しました。プロモートされる時期は、8月12日にメンテナーがWebkitテストスイートを通過することに非常に近いと述べたが、APIがフリーズするまでプロモートされず、その準備ができていなかった。 – spiffytech
すてきなパッケージですが、使用に問題があります。私はそれをインポートしますが、コンパイラはDocumentとNewDocumentが定義されていないことを教えていますか? – Eno
コードから抜粋してGitHubで問題を開くことができますか?私はそれを見てみましょう。 – mna
Im新しいことに行くので、おそらく間違ったことをしています。 MacにはIm、IveはHomebrewを使ってGo(1.0.3)をインストールしました。 "go get github.com/PuerkitoBio/goquery"を実行すると、/usr/local//Cellar/go/1.0.3/src/pkg/github.com/PuerkitoBio/goqueryにパッケージがインストールされているようです。 – Eno