爬虫中的groovy脚本

原创 2015年07月08日 17:15:02

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)


版权声明:本文为博主原创文章,未经博主允许不得转载。

第一个爬虫 Groovy + Jsoup(神器) 爬取知乎日报

1.分析页面结构 从上图分析页面结构,很明显,这是一个列表页,我们应该将详情页作为落地页 分析落地页,我们主要抓取内容和标题,但是在你实现的过程中可以发现,某些详情页是没有标题的。...

Groovy脚本基础全攻略

【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】1 背景Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Ja...
  • yanbober
  • yanbober
  • 2015年10月21日 23:25
  • 47030

解析并触发groovy脚本

/** * @Title: GroovyUtil.java * @Package: com.boco.gaia.service.mockalarm.util * @Descriptio...

SOAPUI 接口自动化学习笔记节选 如何用Groovy 脚本读取CSV 文件

我们在不论做哪种类型的自动化,都或多或少需要读取CSV文件,或是EXCEL 中的文件,以下是百度阅读SOAPUI  接口测试笔记的部分内容, CSV  读取 有时我们需要将数据放在CSV 文件中,...

ofbiz总结——xml中变量与groovy、BeanShell脚本中变量作用域

在子元素(或在迷你语言中),访问一个screen widget的局部容器是直接和自动的。在局部容器中,简单地赋值给一个变量意味着创建该变量(或者修改它如果已经存在的话)。我们来看下面的一个例子: 让...
  • xiaozaq
  • xiaozaq
  • 2017年10月25日 11:29
  • 71

Java中执行Groovy脚本

Groovy脚本执行

Groovy脚本基础全攻略

Groovy脚本基础全攻略 【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】 1 背景 Groovy脚本基于Java且...

Groovy-java 脚本2

join 该操作用给定的字符串连接list中元素的toString的值.例如,它在list的所有字符串元素中间插入了一个’^’分隔符. ['one', 'two', 'three'].join(‘...

java中调用groovy脚本

Groovy咱使用不再什么大项目上,可以用来实现规则引擎,定义一个groovy文件通过spring动态载入,在groovy里面调用java的方法,处理业务对象。我感觉这个比规则引擎更灵活~~ 1...

groovy分析脚本基本组成文件详解和运行过程中出错分析

在本公司搭建的hadoop运行平台上,主要利用groovy进行数据分析并输出分析结果到数据库报表。每一个分析需要编写DataTypeConfig.xml、ReportConfig.xml和.groov...
  • wcy6340
  • wcy6340
  • 2015年01月30日 10:31
  • 693
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:爬虫中的groovy脚本
举报原因:
原因补充:

(最多只允许输入30个字)