GoldData学习实例-采集官网新闻数据
概述
在本节中,我们将讲述抓取政府官网地方新闻。并将抓取的新闻数据融入到以下两张数据表news_site和news中。

news_site(新闻来源)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键,自动增长 |
| name | varchar(128) | 来源名称 |
news(新闻)
| 字段 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键,自动增长 |
| title | varchar(128) | 标题 |
| site_id | bigint | 外键,指向表news_site的id字段 |
| content | text | 内容 |
| pub_date | datetime | 发布时间 |
| date_created | datetime | 加入时间 |
我们很容易看到这两张表存在关联,那是怎样将数据写入关联呢,我们将再此一一介绍。
定义站点、数据集


定义抓取和抽取规则
在这里我们需要填入口地址。入口地址如果有多个,那么要以英文逗号相隔。如下图所示:

接下来我们编写规则时,首先是匹配URL,这里需要填写正则表达式。旁边的“?”号,点击后就会弹出相应的帮助文档。如下图所示:

然后数据集选择则我们要注意,如果抓取的仅需要的是链接,那么是否数据集选择否,且数据集字段必须要有一个名为href的字段。如下图所示:

否则是否数据集应该选择是,且数据集字段必须要有一个名为sn的字段。sn字段存放的数据一般是唯一值,相当于数据表里的id字段。如下图所示:

完整的规则内容显示如下:
[
{
__sample: http://sousuo.gov.cn/column/40520/0.htm
match0: http\:\/\/sousuo\.gov\.cn\/column\/40520/\d+\.htm
fields0:
{
__model: false
__node: .news_box a
href:
{
expr: a
attr: abs:href
js: ""
__label: 链接
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
}
}
{
__sample: http://www.gov.cn/xinwen/2019-02/26/content_5368539.htm
match0: http\:\/\/www\.gov\.cn/xinwen/2019-\d{2}/\d{2}/content_\d+.htm
fields0:
{
__model: true
__dataset: news
__node: ".article "
sn:
{
expr: ""
attr: ""
js:
'''
var xx=md5(baseUri)
xx
'''
__label: 编号
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
title:
{
expr: .article >h1
attr: ""
js: ""
__label: 标题
__showOnList: true
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
pubdate:
{
expr: .pages-date:matchText
attr: ""
js: ""
__label: 发布时间
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
source:
{
expr: .pages-date > span.font:contains(来源)
attr: ""
js:
'''
var xx=source.replace("来源:",'');
xx
'''
__label: 来源
__showOnList: true
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
content:
{
expr: .pages_content
attr: ""
js: ""
__label: 新闻内容
__showOnList: false
__type: ""
down: "0"
accessPathJs: ""
uploadConf: ""
}
}
}
]
配制和启动抓取器

一个抓取器可以配制抓取多个站点,一个站点也可以配制多个抓取器抓取。
然后点击“开始”,则会启动抓取器。
查看和导出数据

可以按照搜索条件进行导出数据。选择“导出”按扭后,还将提示导出哪些数据段,最后导出文件。 如果数据少量,将会导出为excel文件,否则下载的打包之后的zip文件。如下图所示:

本节内容描述到这里,下一篇将讲述如何通过金色数据如何将数据融合到数据表当中去。
GoldData学习实例-采集官网新闻数据的更多相关文章
- go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE
go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...
- 【Spark深入学习 -16】官网学习SparkSQL
----本节内容-------1.概览 1.1 Spark SQL 1.2 DatSets和DataFrame2.动手干活 2.1 契入点:SparkSess ...
- Android学习 多读官网,故意健康---手势
官网地址 ttp://developer.android.com/training/gestures/detector.html: 一.能够直接覆盖Activity的onTouch方法 public ...
- scrapy实验1 爬取中国人寿官网新闻,保存为xml
一.scrapy 实验 爬中国人寿新闻,保存为xml 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10517297.html 链 ...
- apigateway-kong(二)admin-api(结合实例比官网还详细)
部署好kong之后,则需要将我们自己的接口加入到kong中管理,kong提供了比较全面的restful api,每个版本会有所不同,下面的记录基于kong v0.13.x kong的8001端口是re ...
- java实现抓取某公司官网新闻
这里先说一下,实习期的一个项目,当时并没有该合作公司的获取新闻的接口,但是项目又急着上线,所以总监就让我来做一个简单的抓取,现将主要的工具类NewsUtil.java贴出来供大家参考. NewsUti ...
- Drupal8学习之路--官网文档碎碎记--主题篇
主要记录一些琐碎的知识点. 1.“In Drupal 8 drupal_add_css(), drupal_add_js() and drupal_add_library()were removed ...
- layui前端框架实例(修复官网数据接口异常问题)
layui前端框架实例,官网的实例会提示数据接口异常,已修复. 主要是修改数据表格,做一个可以用的实例,可以选中,编辑,删除等. gitee地址:https://gitee.com/pingg2019 ...
- 官网英文版学习——RabbitMQ学习笔记(十)RabbitMQ集群
在第二节我们进行了RabbitMQ的安装,现在我们就RabbitMQ进行集群的搭建进行学习,参考官网地址是:http://www.rabbitmq.com/clustering.html 首先我们来看 ...
随机推荐
- Activity被回收导致fragment的getActivity为空
在编写含有Fragment代码的时候,经常会遇到这种情况,假如app长时间在后台运行,再点击进入会crash,而且fragment页面有重叠的现象. 如果系统内存不足.或者切换横竖屏.或者app长时间 ...
- 使用DataTables插件与后台对接表格
function getResults(){ var callResults = $.ajax({ url: "....", //接口url type: "GET&quo ...
- 【眼见为实】自己动手实践理解数据库READ UNCOMMITED && SERIALIZABLE
目录 准备工作 ①准备测试表和测试数据 ②关闭数据库事务自动提交 ③设置InnoDB存储引擎隔离级别 [READ UNCOMMITTED] [READ UNCOMMITTED]能解决的问题 [READ ...
- Oracle EBS 请求添加SQL语句
- eclipse中如何添加tomcat插件
本篇简短的介绍了如何安装tomcat插件,因为不eclipse中不安装插件就没有tomcat图标,也就无法正常关闭服务器而只能terminate.废话不多说,直接进入主题: 1.首先下载一个tomca ...
- JAVA两种代理模式
简单设计动态代理,基本模拟spring的动态代理方式. before afterReturning around afterException after这些通知方法都可以这块模拟出来 spring的 ...
- 获取WebService的请求信息
一个已经写好的项目中有多个WebService,由于之前没有记录请求信息的,有时候需要查错等需要找到当次的请求信息,所以需要加入记录请求信息的功能. 首先想到的是在每一个带有WebMethod特性的方 ...
- MySQL InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析
MySQL InnoDB支持三种行锁定方式: l 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. l 间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙 ...
- 转:.net设计模式之单例模式
原文地址:http://terrylee.cnblogs.com/archive/2005/12/09/293509.html 概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全 ...
- 使用最新版SDWebImage
使用最新版SDWebImage 1. 下载源码: 2. 测试能否编译成功: 3. 用Xcode6新建一个工程,然后将文件夹拖入到工程当中: 4. 查看其主要的源码,发现之前使用版本的方法都被弃用了: ...