经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 大数据/云/AI » Hadoop » 查看文章
GoldData学习实例-采集官网新闻数据
来源:cnblogs  作者:dataman100  时间:2019/3/18 8:55:54  对本文有异议

概述

 

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

source1

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 加入时间

我们很容易看到这两张表存在关联,那是怎样将数据写入关联呢,我们将再此一一介绍。

定义站点、数据集

define_site

define_dataset

定义抓取和抽取规则

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

entry

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

url_match

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

dataset_href

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

dataset_sn

完整的规则内容显示如下:

  1. [
  2. {
  3. __sample: http://sousuo.gov.cn/column/40520/0.htm
  4. match0: http\:\/\/sousuo\.gov\.cn\/column\/40520/\d+\.htm
  5. fields0:
  6. {
  7. __model: false
  8. __node: .news_box a
  9. href:
  10. {
  11. expr: a
  12. attr: abs:href
  13. js: ""
  14. __label: 链接
  15. __showOnList: false
  16. __type: ""
  17. down: "0"
  18. accessPathJs: ""
  19. uploadConf: ""
  20. }
  21. }
  22. }
  23. {
  24. __sample: http://www.gov.cn/xinwen/2019-02/26/content_5368539.htm
  25. match0: http\:\/\/www\.gov\.cn/xinwen/2019-\d{2}/\d{2}/content_\d+.htm
  26. fields0:
  27. {
  28. __model: true
  29. __dataset: news
  30. __node: ".article "
  31. sn:
  32. {
  33. expr: ""
  34. attr: ""
  35. js:
  36. '''
  37. var xx=md5(baseUri)
  38. xx
  39. '''
  40. __label: 编号
  41. __showOnList: false
  42. __type: ""
  43. down: "0"
  44. accessPathJs: ""
  45. uploadConf: ""
  46. }
  47. title:
  48. {
  49. expr: .article >h1
  50. attr: ""
  51. js: ""
  52. __label: 标题
  53. __showOnList: true
  54. __type: ""
  55. down: "0"
  56. accessPathJs: ""
  57. uploadConf: ""
  58. }
  59. pubdate:
  60. {
  61. expr: .pages-date:matchText
  62. attr: ""
  63. js: ""
  64. __label: 发布时间
  65. __showOnList: false
  66. __type: ""
  67. down: "0"
  68. accessPathJs: ""
  69. uploadConf: ""
  70. }
  71. source:
  72. {
  73. expr: .pages-date > span.font:contains(来源)
  74. attr: ""
  75. js:
  76. '''
  77. var xx=source.replace("来源:",'');
  78. xx
  79. '''
  80. __label: 来源
  81. __showOnList: true
  82. __type: ""
  83. down: "0"
  84. accessPathJs: ""
  85. uploadConf: ""
  86. }
  87. content:
  88. {
  89. expr: .pages_content
  90. attr: ""
  91. js: ""
  92. __label: 新闻内容
  93. __showOnList: false
  94. __type: ""
  95. down: "0"
  96. accessPathJs: ""
  97. uploadConf: ""
  98. }
  99. }
  100. }
  101. ]

配制和启动抓取器

config_spider

一个抓取器可以配制抓取多个站点,一个站点也可以配制多个抓取器抓取。

然后点击“开始”,则会启动抓取器。

查看和导出数据

navigate

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

data_export

本节内容描述到这里,下一篇将讲述如何通过金色数据如何将数据融合到数据表当中去。

原文链接:http://www.cnblogs.com/golddata/p/10543254.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号