# 规则定义

风铃虫是依据风铃虫规则定义运行,根据风铃虫规则定义来抓取网页、下载网页和从网页中提取出符合要求的超链接供资源调度器调度一级根据实现定义好的规则来从文本中提炼出所需要的信息。可以说,风铃虫规则定义是风铃虫的基石,风铃虫规则定义是风铃虫的内在本质,风铃虫是风铃虫规则定义的外在表现。他们的关系如下:

风铃虫规则定义 =======构造出=====》 风铃虫

构造过程请参见 快速启动

一个完整的 风铃虫规则定义 如 风铃虫规则定义示例 所示,它由以下几个部分组成

  • 基本规则信息
  • 站点规则信息
  • 链接解析规则
  • 内容解析规则

这些规则的详细含义与作用说明如下所示:

# 基本规则信息

基本规则信息主要是定义了风铃虫的基本全局属性。

基本定义包含以下几条规则

  • 请求的间隔时间
  • 超时等待时间
  • 解析时线程数

# 请求的间隔时间

每次请求的平均间隔时间,单位为毫秒,默认为10000毫秒(10秒),实际运行时每次请求的间隔时间为0到改值得两倍之间的一个随机数。

作用:风铃虫在同一个实例中,每次发出网络请求之后都会间隔一段时间后再次发出下一个请求,以免因频繁请求对目标服务器造成压力,从而导致服务器封杀

# 超时等待时间

超时等待时间,单位为毫秒,默认为300000毫秒(300秒)。

作用:风铃虫实例在连续一段时间没有接收到新的任务请求,且此连续时间超过该超时等待时间时风铃虫会自动停止该实例的运行,以节省用户资源。

# 解析时线程数

在解析网页内容时使用到线程数,默认值为运行机器的内核数

作用: 风铃虫在解析网页下载器下载的网页资源时是使用多线程解析的,解析时使用到的线程数由该参数决定。

# 站点规则信息

风铃虫根据站点规则信息构造出对应的网页下载器

站点规则信息定义了风铃虫实例在每次发出网络请求时需要携带的请求头和cookie等信息,以及设置服务器封杀检验功能。主要包含以下几个参数

  • 浏览器标志
  • 来源参考页
  • 网页缓存策略
  • 请求cookie值
  • 失败重试次数
  • 封杀标志
  • 封杀阀域值
  • 自动重定向
  • 最大重定向数
  • 超时时间
  • 压缩请求内容
  • 请求头信息

# 浏览器标志

当此值为空时,表示风铃虫实例在每次发出网络请求都会从内置的二十几种浏览器标识里随机选择一个

作用:风铃虫实例在每次发出网络请求都会携带一个浏览器标识参数 user-agent (即请求头参数user-agent),此值的值由该参数确定

# 来源参考页

来源参考页,默认为空,表示系统设置为当前请求的网页值

作用 :风铃虫实例在每次发出网络请求都会携带referer参数(即请求头参数referer),用于指明当前流量的来源参考页面,该referer的值由此参数确定

# 网页缓存策略

默认为 max-age=0

作用 :用于指明网页缓存策略

# 请求cookie值

默认为空,

作用:风铃虫实例在每次发出网络请求都会携带一个Cookie参数 Cookie(即请求头参数Cookie),此值的值由该参数确定

# 封杀标志

默认为空

作用: 需要与 封杀阀域值 参数配合使用,当 封杀标志 值不为空且封杀阀域值大于0 时表示开启了 封杀检验 功能,在风铃虫发现其网页下载器下载的网页内容里包含有封杀标志的内容,且连续出现的次数大于封杀阀域值时会自动停止该实例的运行,从而节约服务器资源。

# 封杀阀域值

默认值为5

作用: 与封杀标志参数配合使用

# 自动重定向

默认值为true,表示开启

作用: 网页下载器请求网页时是否自动重定向

# 最大重定向数

默认值为50

作用: 网页下载器请求网页时自动重定向时最大自动重定向次数

# 超时时间

确定连接建立之前的超时时间(以毫秒为单位),默认为-1

作用: 确定连接建立之前的超时时间(以毫秒为单位)

# 压缩请求内容

默认值为true

作用:是否开启HTTP压缩

请求头信息 默认值为空,可以设置多组参数

作用:请求头信息是风铃虫下载器发出网络请求时携带的请求头参数,它主要有多组键值对组成。

# 链接解析规则

风铃虫根据链接解析规则构造出对应的链接解析器

链接解析规则定义了风铃虫从那个地址开始抓取以及如何获取下一次抓取的请求地址的相关规则

链接解析规则由以下的部分组成

  • 起始链接
  • 链接提取规则

风铃虫会根据链接提取规则构建出链接解析器,由链接解析器完成链接解析任务

# 起始链接

必填参数,可以填多个起始链接,多个起始链接间用半角逗号隔开

作用: 风铃虫的起始抓取地址,风铃虫从此地址开启抓取旅程

# 链接提取规则

风铃虫根据链接提取规则构造出对应的链接提取器

默认参数为 /**,表示从下载网页信息提取出链接中包含起始网站的域名关键字的网页链接 可以设置多组提取规则

作用: 负责从下载的网页内容里提取出所有完全符合链接的提取规则的超链接,最后的抽取结果为多组提取规则匹配出来的超链接的总和。最后风铃虫会将提取出来的链接交给资源调度器调度。

通俗地说,链接提取规则就是告诉风铃虫哪些页面是 内容页和列表页

风铃虫会根据链接的提取规则构建出链接提取器,由链接提取器进行实际的链接解析工作,多个链接提取器组合成一个链接解析器

# 内容解析规则

风铃虫根据内容解析规则构造出对应的内容解析器

内容解析规则定义了哪些网页内容会被风铃虫解析、风铃虫从下载的网页资源中提取哪些数据以及如何提取这些数据。

  • 内容页规则
  • 内容提取规则

风铃虫内核会根据内容解析规则构建出内容解析器,由内容解析器完成解析任务

# 内容页规则

默认参数为 /**,表示下载网页的URL中包哈有起始链接的中域名的域名关键字的网页的内容都会被解析。可以设置多个内容页规则,过个内容页规则之间用半角逗号隔开。

多个规则之间是并列关系,不会互相影响。

作用: 只有网页的URL符合此提取规则该网页的内容才会被风铃虫解析,否则风铃虫会跳过此网页的解析任务以节约用户资源,同时提高解析效率。

通俗地说,内容页规则就是告诉风铃虫哪些页面是 内容页

# 内容提取规则

必填参数,可以设置多组,多组规则之间互相不会影响。

作用: 风铃虫根据内容提取项规则了解要从网页内容里解析出出来哪些数据以及如何解析这些数据。

# 内容提取规则

风铃虫根据内容提取项规则构造出对应的内容提取器

描述了风铃虫要从网页内容里解析出出来哪些数据以及如何解析这些数据。

它由以下几部分组成

  • 内容提取项名字
  • 内容提取项代码
  • 内容提取项的描述
  • 属性提取规则

# 内容提取项名字

选填参数

作用:此提取项的名字,可以重复,不参与解析

# 内容提取项代码

必填参数

作用:此提取项的代码,不可以重复,参与解析,输出信息器中可以根据此值获取信息

# 内容提取项的描述

选填参数

作用:此提取项的描述信息,可以重复,不参与解析

# 属性提取规则

属性提取规则用于描述如果提取该项数据,它由一系列提取规则组成。

风铃虫内核会根据属性提取规则构建出内容提取器,由内容提取器完成解析任务,风铃虫的内容解析器由一组内容提取器组成,多个内容提取器由先后顺序要求,前一个内容提取器的输出数据即为后一个内容提取器的输入数据,内容解析器调用其组内的内容提取器完成数据的抽取功能

# 属性提取规则

属性提取规则描述了如何从网页里提取数据,同一个内容提取项里包含多组属性提取规则。

属性提取规则由以下几部分组成

  • 内容处理策略
  • 第一个参数
  • 第二个参数
  • 处理序号

风铃虫根据属性提取规则构建出内容提取器,风铃虫具有多种内容提取器,各种内容提取器的具体介绍请参见 内容提取器

# 内容处理策略

必填参数,由枚举值Rule确定,具体的可选值请参见 内容提取器枚举表

作用:该参数决定了内容提取器如何提取数据,使用哪种方式提取数据,

# 第一个参数

由内容处理策确定其作用

# 第二个参数

由内容处理策确定其作用

# 处理序号

必填参数,同一组规则内该序号不能重复

作用:确定内容提取器的作用顺序,同一内容解析器内的内容提取器按照处理序号由小到大先后执行。




Last Updated: 1/7/2020, 10:34:40 PM