私はHTMLページを解析してテーブル値を取得したいと思います。たとえば、辞書を解析して辞書のリストを取得します。各リスト要素は、表の行に対応する辞書になります。HTMLテーブルをGroovyリストに解析しますか?
のテーブルがあるとしましょう:
テーブル
<table style="width:100%">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
結果
[Jill, Smith, 50]
[Eve, Jackson, 94]
私は二つの方法でこれを実現しています:
-
このようにクロージャを使用して
::XPathを使用し
-
page."**".findAll { [email protected]().contains("time")}.each {
page.body.div.table.tr.time;
どちらの方法がXMLSlurperを使用します。
@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='1.2')
def parser = new XmlSlurper(new org.ccil.cowan.tagsoup.Parser())
だから、テーブル値を得るための別の方法がありますGroovyを使用して
助けてくれてありがとう!
上記の方法のいずれかに問題があり、そのために第3のアプローチが必要ですか? – dmahapatro
あなたの例のhtmlにある何かが "time"のクラスを持つべきか –
1)最初のアプローチの主な関心事は、ハードコーディングされた解決策です。アジャイルではありません。構造が変更された場合、予期しない結果が返される可能性があります。 2番目のアプローチは、私が今すぐそれをやり遂げるのに好ましい方法です。ここでの唯一の問題は、計算コストと場合によっては正規表現の必要性です。私は一般的な解決策を探していた:http://stackoverflow.com/questions/6325216/parse-html-table-to-python-list – Vanko