关闭

爬虫中的groovy脚本

370人阅读 评论(0) 收藏 举报

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

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    文章分类
    文章存档