爬虫中的groovy脚本

来源:互联网 发布:记忆宫殿知乎 编辑:程序博客网 时间:2024/05/18 00:03

1.使用select()方法在页面上选择我们需要的信息

def document = page.getHtml().getDocument();//这里的page是webmagic中的一个Page对象

<div id="aa">

<span class="bb">

爬虫中的groovy脚本

</span>

</div>

如果想要获取这个标签的正文内容,有以下方法:

  1. document.select("div#aa").text()
  2. document.select("div#aa>span")  .text()
  3. document.select("span.bb").text() 

如果想要获取这个完整的标签(包括标签和文本):

  1. document.select("div#aa").toString()

2.使用正则表达式来匹配文本并截取所需要的信息

  1. 在groovy主要使用"=~/regex/"来匹配,比如说msg=“开始-需求信息-结尾”,想要截取“需求信息”,则使用:def aa = (msg=~/开始(.+)?结尾/)[0][1]   //这里可以将匹配后的结果视为一个二维数据
  2. 匹配日期时间类型:比如msg = "2015-7-9 13:30"    使用(msg=~/\d{4}-\d{1,2}-d{1,2} \d{1,2}:d{1,2} /)[0]就可以匹配到"2015-7-9 13:30",当然如果要把它转换成dateTime类型的话,还要用到SimpleDateFormat类的parse()和format()方法来转换

3.使用xpath来获取所需要的信息

有时候,我们发现一些标签只有style属性,没有id,class属性,这就不能使用select()函数了,因为select()中的参数都是css样式选择器,这个时候,我们发现xpath就很好用了
比如说
<table sytle="width:100px">
<tbody>
<tr><td>

使用xpath来获取所需要的信息

</td></tr>
</tbody>
</table>
我们可以使用page.getHtml().xpath("//talbe[@sytle=width:100px]").all()来获取这个table标签
*因为刚开始用xpath,不是很熟练,没有什么好的建议(可以看看W3CSchool的帮助文档有介绍)

4.使用其他的一些方法来去掉多余的信息

  • replacAll(String regex,String str)


0 0
原创粉丝点击