我想解析HTML页面并获取表值。例如,解析它以获取字典列表。每个列表元素都是对应于表中行的字典。
我们说这个表是:
表格
<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.body.div.table.tr.time;
使用这样的闭包:
page."**".findAll { it.@class.toString().contains("time")}.each {
两种方式都使用XMLSlurper:
@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='1.2')
def parser = new XmlSlurper(new org.ccil.cowan.tagsoup.Parser())
还有另一种使用groovy
获取表值的方法感谢您的帮助!
答案 0 :(得分:1)
我使用jsoup HTML解析器取得了不错的效果。它是一个java库,但与Groovy配合得很好。以下是parsing a table in Java的示例,以及使用Groovy和jsoup进行抓取的有用blog entry。这个question在解析表时有一个很巧妙的例子。