RuiJi Scraper基础 – RuiJi表达式模型

简介:

前言

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

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

数据块 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用来描述我们在这个数据片中感兴趣的数据

目录
相关文章
|
7月前
|
缓存 安全 Java
|
API Serverless 监控
函数组合的N种方式
随着以函数即服务(Function as a Service)为代表的无服务器计算(Serverless)的广泛使用,很多用户遇到了涉及多个函数的场景,需要组合多个函数来共同完成一个业务目标,这正是微服务“分而治之,合而用之”的精髓所在。
2365 0
|
7月前
|
编译器 程序员 C++
【C++ 类型推导 】深入探索C++类型推导:从C++11到C++20的进化之路
【C++ 类型推导 】深入探索C++类型推导:从C++11到C++20的进化之路
93 0
|
7月前
|
Java
基本概念【算术、 关系、逻辑、位、字符串、条件、优先级等运算符】(三)-全面详解(学习总结---从入门到深化)
基本概念【算术、 关系、逻辑、位、字符串、条件、优先级等运算符】(三)-全面详解(学习总结---从入门到深化)
74 0
|
算法
表达式转换-中缀转后缀表达式后计算-数据结构与算法
表达式转换-中缀转后缀表达式后计算-数据结构与算法
406 0
表达式转换-中缀转后缀表达式后计算-数据结构与算法
|
算法
6.解析表达式算法
6.解析表达式算法
116 0
运算符(较为基础,基础篇)(一)
运算符(较为基础,基础篇)(一)
68 0
运算符(较为基础,基础篇)(二)
运算符(较为基础,基础篇)(二)
64 0
|
达摩院 API C++
MindOpt--C++语言-对一个简单的混合整数规划问题建模求解
MindOpt是达摩院决策智能实验室研究的一款优化求解器,目前在优化求解线性规划问题这一功能上取得不错的成绩,希望大家能够帮我们多多打磨其他功能(混合整数线性规划、二次规划、半定规划目前都在公测),让我们的MindOpt在优化求解器这板块成为国产之光。
MindOpt--C++语言-对一个简单的混合整数规划问题建模求解
简单表达式的计算(两种方法)
数据结构中对于栈的运用,最主要的一个例子就是简单表达式的计算了,当你独自将这个程序写出来的时候,这说明你对于栈的运用已经炉火纯青了,下面我将对这个问题做出详细的解答,让我们一起来看看吧
128 0
简单表达式的计算(两种方法)

热门文章

最新文章