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 首先我们来看 ...
随机推荐
- python-threading.Event实现事件功能--汽车过红绿灯(转载)
python-threading.Event实现事件功能 enent可以通过设置.等待.清除一个标识(flag),来进行线程间的控制线程可以通过获取这个标志位(flag)的状态(设置或未设置)来控制线 ...
- hibernate中指定非外键进行关联
/** * 上级资源 */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PARENT_ID", reference ...
- 相关与卷积(数字信号处理)的数学原理及 Python 实现
数学原理 在数字信号处理中,相关(correlation)可以分为互相关(cross correlation)和自相关(auto-correlation). 互相关是两个数字序列之间的运算:自相关是单 ...
- [CENTOS7] [IPTABLES] 卸载Firewall Id安装 IPTABLES及防火墙设置
卸载Firewall ID,重装IPTABLES:先停止服务 systemctl stop firewalldsystemctl mask firewalld yum install iptabl ...
- python_循环(迭代)
#for 和 while #for用来迭代处理,什么叫迭代?你就当没看到这个词,for是把一堆玩意做一个一个加工用的,比如吃一袋花生,得一个一个剥吧,就是这意思 a = 'abcde' #每个字母当做 ...
- 设计多选按钮ListChooseView
设计多选按钮ListChooseView 答应某位女屌丝而写的控件,效果还不错,开源给大家^_^! 效果图: 源码: // // ListChooseView.h // ScrollChooseBut ...
- CSS一个属性,让图片后的文字垂直居中,效果看得见
困扰我多年的疑难,终于解决了.哈哈哈,太爽了 背景 页面经常遇到,图片后面的文字显示在图片的中间部位,也就是说文字图片垂直居中. <div class="banner"> ...
- Windows Server 2008搭建域控制器
前言 1.为什么要建域 工作组的分散管理模式不适合大型的网络环境下工作,域模式就是针对大型的网络管理需求设计的,就是共享用户账号,计算机账号和安全策略的计算机集合.域中集中存储用户账号的计算机就是域控 ...
- Sql Server 支持的数据类型
T-SQL语言和SQLServer数据库中的数据通常需要定义一个数据类型,数据类型定义了对象可以容纳的数据的种类. 哪些对象需要数据类型 (1).表和视图的列: 在定义 ...
- Shell定时删除日志
vim del_log.sh #!/bin/bash location="/home/dl/code/logs" find $location -mtime +4 -type f ...