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 首先我们来看 ...
随机推荐
- android开启线程的误区
发现一些刚学android的人,和我当初一样,对android的线程会存在着一定误区. 在android中,开启新线程时,一些人会用以下方法: new Handler().post(r); 但是这样并 ...
- 2018-10-15 21:07:38 c language
2018-10-15 21:07:38 c language C语言编译器,神奇的魔法师 在类 UNIX 系统(Linux.Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断 ...
- Android通过Intent传递对象
1.传递Serializable方式类对象 首先创建一个序列化类:User import java.io.Serializable; public class User implements Seri ...
- sql 脚本 oracle scott 用户的四张表导入 mysql 中
/* 要先删除emp表,不能先删除dept表,因为dept有一个外键关联emp表*/drop TABLE emp;drop TABLE dept; drop TABLE salgrade;drop T ...
- Week5——Ajax
1.简介 AJAX 相当于异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网 ...
- c# 编译期常量const和运行时常量readonly
注意:const编译期常量是编译的时候就确定的,可以查看IL代码,是写死的.如果另一个程序集引用后,该程序集没有进行编译,则值不会改变. 看效果: 项目中有2个程序集: 其中:常量在这个程序集中定义并 ...
- SQLSERVER2012里的扩展事件初尝试(上)
SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...
- 详细透彻解读Git与SVN的区别(集中式VS分布式)
Git是目前世界上最先进的分布式版本控制系统,其实 Git 跟 SVN一样有自己的集中式版本库或服务器,但是Git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect ou ...
- Django ImportError 模块路径正确,且将文件夹设置为Source Root
问题描述: 在用PyCharm进行Django项目开发时,由于业务需求需要增加一个外键字段,但在引入外键关联的model时,报错ImportError 解决方案: 无奈中,尝试更改导入模块语句的位置, ...
- 题解 P1018 【乘积最大】
题目链接:P1018 乘积最大 题面 今年是国际数学联盟确定的"2000――世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面 ...