前言

RuiJi Scraper是一款可视化的浏览器爬虫扩展,是一款适合金融、新闻编辑、新媒体人员、个人站点、爬虫工作者数据采集工具。

RuiJi表达式是RuiJi Scraper的抽取模型,同时也是RuiJi.Net开源爬虫框架的抽取模型,RuiJi.Net是github上的开源项目,贡献者同时也是RuiJi Scraper的作者。

RuiJi表达式是大量的爬虫工作中总结出的经验,基本上可以适用于所有需抓取的网页。

firefox地址 https://addons.mozilla.org/zh-CN/firefox/addon/ruiji-scraper/
谷歌浏览器地址 https://chrome.google.com/webstore/detail/ruiji-scraper-web-extract/klhahkhllngppofpkjdlbmnglnmnbbol?hl=zh-CN

数据块 Block

在网页设计时,网页设计者往往会使用样式,ID等来区分网页的区域,不同的区域显示不同的内容,这不仅在网页设计上是大多设计者共同使用的习惯,同时也利用该种方式,在最终产品上形成视觉可识别的区域,使使用者能过快速的定位自己关心的内容。

Block是我们需要提取的区域,在一个页面中这种区域可能存在多个。我们以google的RuiJi Scraper搜索结果为例来说明一下Block。

从图中我们可以看出,google的页面搜索结果(all)大致分为三部分,视频搜索结果,图片搜索结果,网页搜索结果。这三种搜索结果以不同的形式展示给搜索用户,视频和图片的搜索结果为横向,网页的搜索结果为纵向,三种搜索结果的数据都有各自的展示形式。视频搜索结果横向,具有视频预览,时长,标题,作者,来源,上传时间。图片搜索结果横向,主要展示形式为图片。网页搜索结果纵向,具有标题,网址,摘要。我们可能对其中的一部分或全部内容感兴趣。

Block用来定位我们感兴趣的需要提取的区域。

在Block未被定义的情况下,RuiJi表达式默认将Body作为Block

数据片 Tile

正如上面所述,每个Block可能都具有各自的展示形式(也可能相同),但是每个Block中的内容的体现形式是一样的,在网页开发中,开发者往往使用循环的方式,将需要展示的数据以相同子元素的形式展示在页面中。我们同样以google的RuiJi Scraper搜索结果其中的网页搜索结果为例,如下图所示:

如果我们忽略Tile中的内容的话,您将发现Block中是以相同子元素进行循环来向用户展示数据。

Tile被用来定义Block中重复的子元素

元数据 Meta

元数据是我们真正要提取的数据,我们将这些数据抓取下来,保存到文档或数据库,以备后续使用。RuiJi Scraper会将提取出的数据按照所属Tile,Block进行分组,并将抽取结果转换为结构化的数据。下图展示的是一个数据片的搜索结果形式。这里具有标题,链接和摘要。Meta用来描述我们在这个数据片中感兴趣的数据。这里元数据的数量根据您的需要进行定义。

Meta用来描述我们在这个数据片中感兴趣的数据

转载于:https://www.cnblogs.com/zhupingqi/p/9900352.html

RuiJi Scraper基础 – RuiJi表达式模型相关推荐

  1. DSP基础算法与模型研究

    DSP基础算法与模型研究 (转载请保留原文链接 http://www.techinads.com/archives/41 authored by 江申_Johnson) 美国有一家很优秀的DSP公司- ...

  2. CSS 基础框盒模型介绍

    当对一个文档进行布局(lay out)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box).CSS 决定 ...

  3. 《敏捷制造——敏捷集成基础结构设计》——2.3 集成基础结构数据访问模型

    本节书摘来异步社区<敏捷制造--敏捷集成基础结构设计>一书中的第2章,第2.3节,作者:苏金泷,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.3 集成基础结构 ...

  4. AI基础:自然语言处理基础之序列模型

    本文主要参考吴恩达老师的深度学习课程[1]笔记部分. 0.导语 序列模型,是自然语言处理的基础,本集讲解循环序列模型. 我正在编写AI基础系列,目前已经发布: AI 基础:简易数学入门 AI 基础:P ...

  5. 基于深度学习的轴承故障识别-构建基础的CNN模型

    上回书说到,处理序列的基本深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet).上篇构建了基础的LSTM模型,这一篇自然轮到CN ...

  6. 作战仿真中的八个基础的行动模型

    转载参考:https://zhuanlan.zhihu.com/p/43343462 作战仿真模型分为 实体模型.行动模型 两部分. 实体模型主要用于表征各类武器装备.部队单位等仿真对象的静态能力属性 ...

  7. Jquery从入门到精通:二、选择器 1、准备篇 1)基础的基础:DOM模型

    二.选择器      1.准备篇           (1)基础的基础:DOM模型   什么是DOM 文件对象模型(Document Object Model,DOM)是给 HTML 与 XML 文件 ...

  8. Django零基础部署机器学习模型(将模型预测打包成API接口/网页URL)

    Django零基础部署机器学习模型 Django REST framework项目创建 框架结构了解 部署代码 Django REST framework项目创建 建立一个项目文件夹,使用VScode ...

  9. Verilog基础:表达式位宽的确定(位宽拓展)

    相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...

最新文章

  1. 全景图拼接算法实现与改进
  2. 汇编实验2.2 查找匹配字符串(附有详细注释和源代码和相关知识)
  3. 关于jquery-Validate
  4. VTK:Picking之CellPicking
  5. 【微信开发】上传下载多媒体文件
  6. aix shell脚本 运行java_Linux中执行shell脚本的4种方法总结
  7. 由于找不到appvisvsubsystems32.dll_找茬游戏大全:我找东西贼快!小清新找茬游戏小程序,点开既玩...
  8. web前端学习笔记(python)(一)
  9. AWR 报告深度解读:Time Model Statistics 信息的计算和获取
  10. Django 框架 新建app 、新建表
  11. python贪吃蛇源代码_python实现贪吃蛇游戏源码
  12. ryu实例---Hub
  13. 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞
  14. SayAsYouWish:Fine-grained Control of Image Caption Generation with Abstract Scene Graphs ---- 论文阅读笔记
  15. 2014年总结和2015年的规划
  16. Python实用编程技巧(二)
  17. principal argument cannot be null
  18. Java 将Word保存为WPS和WPT格式
  19. GMS认证送测前自检项小结
  20. 计算机是否支持64位操作系统,如何确定电脑的CPU是否支持64位操作系统

热门文章

  1. 用canvas给自己的博客园加背景(二)
  2. Redis命令小细节
  3. Trie 树内存消耗问题
  4. 获取存储过程返回值及代码中获取返回值(转)
  5. 翻译:重载解决和Null
  6. 十字路口待转区什么用_左转待转区,到底怎样掉头?
  7. 老男孩python爬虫视频教程_python爬虫入门
  8. 用python画动态三维轨迹_python 画3维轨迹图并进行比较的实例
  9. Redis之key的淘汰策略
  10. RDD和DataFrame和Dataset比较