使用Gather Platform进行大规模新闻语料采集

原创
2017/02/17 19:47
阅读数 1.1K

Gather Platform 数据抓取平台是一套基于 Webmagic 内核的,具有 Web 任务配置和任务管理界面的数据采集平台,一个轻量级的搜索引擎系统。具有以下功能

  • 根据配置的模板进行数据采集

  • 对采集的数据进行NLP处理,包括:抽取关键词,抽取摘要,抽取实体词

  • 在不配置采集模板的情况下自动检测网页正文,自动抽取文章发布时间

  • 动态字段抽取与静态字段植入

  • 已抓取数据的管理,包括:搜索,增删改查,按照新的数据模板重新抽取数据

  • 多数据输出方式:Elasticsearch、JSON文本,Redis

5分钟即可部署完毕,半分钟即可完成一个爬虫,开始数据采集. 不需要进行任何编码就可以完成一个功能强大的爬虫.

详细介绍:https://www.oschina.net/p/gather-platform

源码:http://git.oschina.net/gsh199449/spider

使用手册:https://gsh199449.github.io/gather_platform_pages

使用手册非常详细,查看使用手册即可解决安装部署和使用中的绝大多数问题。如果还有上面未涉及到的问题,可以加QQ群一起交流:206264662。

在NLP领域,语料的采集对于模型的训练是非常重要的。下面我们使用这个平台完成新闻语料的采集。

首先,我们确定带抓取的网站,腾讯新闻。打开腾讯新闻首页,随便点击几条链接,观察链接URL的格式规律。以下给出几个样例URL:

  • http://news.qq.com/a/20170217/030565.htm
  • http://news.qq.com/a/20170217/022717.htm

通过观察我们发现,链接的结构基本是:“http://news.qq.com/a/8位数字日期/几位数字.htm”。

于是我们打开爬虫模板配置界面,开始进行采集模板配置。

  1. 在siteName一栏填入网站名称,这里我们填写“腾讯新闻”
  2. 在domain一栏中填写域名,域名即URL中的第一部分,对于腾讯新闻网站来说域名就是“news.qq.com”。对于网址“https://my.oschina.net/gsh199449/blog”来说,域名即为“my.oschina.net”
  3.  接下来点击startURL输入框,此时系统会自动在这一栏中填入一个起始地址,即 这个域名的根目录。如果你的起始地址不是这个URL,则可以自行更改。在本例中,我们就从腾讯新闻的首页作为入口即可。
  4. 下面点击“显示高级配置”,找到contentXPath一栏,在这个输入框中,我们使用XPath语法告诉爬虫,在网页上,哪部分是正文(content)。通过观察腾讯新闻网站源码我们 发现,所有的正文都被包含在一个id为“Cnt-Main-Article-QQ”的DIV标签中。所以在这一栏中,我们填入:“//div[@id="Cnt-Main-Article-QQ"]//tidyText()”。
  5. 找到“urlReg”一栏,填写一个URL规则,指定符合那些模式的URL需要被抓取。在这里我们使用上面总结的URL规则,将其转换为正则表达式:“http://news\.qq\.com/a/\d{8}/\d*\.htm”
  6. 类似于配置正文的抽取规则,我们再配置一下文章发布时间的抽取规则。从网页源码可知,时间包含在一个具有属性“class="a_time"”的span标签中。网页上显示的时间是这样的形式:“2017-02-17 11:05”。于是在publishTimeXPath一栏中填写如下的XPath表达式:“//span[@class="a_time"]/text()”。为了使计算机能够识别网页上显示的时间格式,我们需要告诉计算机哪些数字是年份,哪些是月份等等模式。所以我们在publishTimeFormat一栏中填写:“yyyy-MM-dd hh:mm”。
  7. 到这里,爬虫模板基本配置完毕,我们可以点击浅蓝色的“抓取样例数据”按钮进行测试抓取。等待抓取完毕后即可在网页上看到根据上面我们配置的模板抓取到的数据。

    从上面的结果我们看到,有一些网页没有正文,有一些有。观察那些没有正文的网页,其中确实没有正文,是图集。所以我们可以勾选“是否网页必须有正文”选项,勾选了这个选项之后,爬虫将抛弃那些正文字段为空的网页。请注意,在确保正文的配置确实能抽到数据之前切勿勾选这个选项,这可能导致爬虫无限抓取来寻找那个错误的正文匹配项。
  8. 此时模板已经配置完毕,可以开始正式的抓取。在正式开始抓取之前,我们需要调整最大抓取数量,这个数量默认是10. 这是为了方便测试模板所设。调整“maxPageGather”字段至你想要的数据量,在这里我们使用100。然后即可点击红色的“提交抓取任务”按钮进行正式的抓取。
  9. 待数据抓取完毕即可在“网站列表”页面查看每个网站的总采集数量,点击导出数据按钮即可下载数据。
展开阅读全文
打赏
0
4 收藏
分享
加载中
gsh199449博主

引用来自“红薯”的评论

代码居然不是在码云上,没法推荐哦
已修改正文链接,码云上也有的,地址:http://git.oschina.net/gsh199449/spider
2017/02/18 10:55
回复
举报
代码居然不是在码云上,没法推荐哦
2017/02/18 09:21
回复
举报
更多评论
打赏
2 评论
4 收藏
0
分享
返回顶部
顶部