爬虫中的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.分析页面结构 从上图分析页面结构,很明显,这是一个列表页,我们应该将详情页作为落地页 分析落地页,我们主要抓取内容和标题,但是在你实现的过程中可以发现,某些详情页是没有标题的。...
  • VP_19951105
  • VP_19951105
  • 2017年06月06日 11:14
  • 823

groovy调用脚本方法

import groovy.transform.TypeChecked //脚本作用域 //def name = 'aa' //pwd = 123 args = [] args[0] = 'emai...
  • linkuiyao
  • linkuiyao
  • 2017年08月23日 18:43
  • 495

groovy脚本中输出调试信息到文件

在进行本地调试时,有时需要将相关的调试信息输出到文件中进行分析,那要怎么做呢?很简单。 .groovy脚本中: public class xxxxxxxx extends ScriptOper...
  • wcy6340
  • wcy6340
  • 2015年01月22日 22:42
  • 905

JAVA与groovy脚本的结合使用

java执行groovy shell脚本 org.codehaus.groovy groovy-all 2.4.0-beta-1 添加groovy jar包支持...
  • z69183787
  • z69183787
  • 2017年03月28日 17:35
  • 1238

groovy之动态脚本的使用

// 首先创建一个Groovy脚本管理器 package com.groovy; import static com.utils.lang.StrEx.isEmpty; import groovy....
  • cchengone
  • cchengone
  • 2016年07月28日 12:17
  • 1279

Java中执行Groovy脚本

Groovy脚本执行
  • zhengchao1991
  • zhengchao1991
  • 2017年06月27日 14:15
  • 429

java调用脚本语言笔记(jython,jruby,groovy)

java调用脚本语言笔记(jython,jruby,groovy)  有两种方法 1.java se 6以后实现了jsr 223规范 java代码: [java...
  • anhuidelinger
  • anhuidelinger
  • 2013年08月10日 14:45
  • 1718

Groovy 脚本接受命令行参数

我们很多时候将groovy作为脚本,在命令行执行。脚本中如何接受参数来制定脚本的行为喃?代码如下if (this.args.size() !=2 )  {  println "this script ...
  • GroovyObject
  • GroovyObject
  • 2010年04月11日 11:30
  • 5468

Groovy 脚本的多种运行方法

groovyConsole 图形交互控制台 groovysh shell命令交互 通过IDE运行Groovy脚本 用命令行执行Groovy脚本 用Groovy创建Unix脚本 Groov...
  • haigenwong
  • haigenwong
  • 2014年04月04日 16:57
  • 3737

SoapUI自动化--Groovy脚本常用操作

soapUI-Groovy脚本常见操作:(呕心一个星期整理和test,经确认完全可以使用) 1.连接数据库 //SQLServer def sql=Sql.newInstance(url:"jd...
  • wanglha
  • wanglha
  • 2015年04月29日 16:12
  • 2777
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:爬虫中的groovy脚本
举报原因:
原因补充:

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