数据采集下来之后,有时候格式不是我们想要的,或者只想从一段数据里提取特定数据。以上需求,可通过八爪鱼的【格式化数据】功能实现。

本教程将结合实例,具体讲解。

 

一、【格式化数据】设置的位置

 

示例网址:https://book.douban.com/subject/4913064/

 

【格式化数据】是对提取到的字段进行格式化操作,我们先按照采集需求,提取字段。本示例中,我们提取此网页中的图书标题、图书简介和图片网址。

 

鼠标放到图片上,右键,选择【在新标签页中打开图片】可查看高清大图

下文其他图片同理

 

字段提取完成以后,鼠标移动到目标字段上,然后点击  按钮,选择【格式化数据】,就会进入【格式化数据】配置页面。

 

 

原始值:原始字段

结果:经过格式化步骤后,输出的字段结果

添加步骤:提供8个数据格式化选项:替换、正则表达式替换、正则表达式匹配、去除空格、添加前缀、添加后缀、日期时间格式化、Html。

以下将配合具体案例,详解这8个选项如何使用。

 

 

二、【格式化数据】8个选项详解

 

1、替换

将字段中的部分或全部内容替换为其他内容支持文字、数字、符号、空格、换行符的替换。

 

实例:如果我们想将字段【436665人评价】中的文本【人评价】去掉,只留下数字【43665】。

 

具体步骤为:

在【添加步骤】中,选择【替换】

【原始值】: 436665人评价

【将】:人评价 

【替换为】:

点击【测试】,【替换结果】:436665

最后点击【确定】,保存配置即可。

 

 

2、正则表达式替换

用正则表达式将字段中的部分或全部内容找出来,然后将其替换为其他内容支持文字、数字、符号、空格、换行符的替换。

相比简单的【替换】,【正则表达式替换】更为强大灵活。

 

实例:在采集数据的时候我们发现,红框中的【书籍信息】只能作为一个字段提取下来。如果想要将【ISBN】独立为一个字段,就需要先将整个红框中的【书籍信息】作为一个字段提取下来,然后用【正则表达式替换】将【ISBN】单独提取出来。

 

具体步骤为:

 

Step1:【书籍信息】提取下来后,有很多空格,先将所有空格去掉。(如果提取的字段中无空格,可跳过这一步)

在【添加步骤】中,选择【正则表达式替换】

【原始值】: 【书籍信息】(包含很多空格)

【正则表达式】:\s+(这条正则表达式的意思是,找到字段中所有的空格)

【替换为】:(将找到的全部空格替换为空)

点击【测试】,得到【替换结果】:作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:9787506365437

最后点击【确定】,保存配置即可。

 

 

Step2:用正则表达式找到【书籍信息】(去除全部空格)中除ISBN编码之外的信息,将其替换为空。

在【添加步骤】中,选择【正则表达式替换】

【原始文本】: 作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:9787506365437

【正则表达式】:作者:(.+?)ISBN: (这条正则表达式的意思是,找到所有字段中以 作者: 开始,以 ISBN: 结束的部分,且包含 作者: ISBN:,所以找到的是 作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN: 

【替换为】:(将以上找到的内容替换为空)

点击【测试】,得到【替换结果】:9787506365437

最后点击【确定】,保存配置即可。

 

 

这里有个问题,像 作者:(.+?)ISBN: 这样的正则表达式怎么写出来的?怎么根据需求,生成正确的正则表达式呢?

 

正则表达式怎么写?

简单来说,面对大量的文本信息,经常会有查找符合某些规则的字符串的需要。正则表达式就是用于描述这些规则的工具。

正则表达式有一套自己的书写规范,有兴趣的小伙伴可深度学习。点击查看 正则表达式教程

不太熟悉正则表达式,可借助八爪鱼提供的正则表达式工具。

 

八爪鱼的正则表达式工具

八爪鱼提供一套正则表达式工具,可以帮助我们轻松生成正则表达式。点击  字样,即可进入八爪鱼的正则表达式工具页面。现在我们就借助此工具,生成需要的正则表达式。

 

【源文本】: 作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:9787506365437

【开始】:从某元素开始,但不包含此元素

【包含开始】:从某元素开始,且包含此元素

【结束】:到某元素结束,但不包含此元素

【包含结束】:到某元素结束,且包含此元素

 

本示例设置

【包含开始】:作者:

包含结束】ISBN: 

生成【正则表达式】作者:(.+?)ISBN:

点击【匹配】后,得到【匹配结果】:作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:

确定无误后,点击【应用】,此正则表达式就生效了,自动填充到【正则表达式】框中,找到内容 作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:

再将找到的内容,【替换为】: 空 

点击【测试】,得到最终的【替换结果】:9787506365437

最后点击【确定】,保存配置即可。

 

 

 

除【开始】【包含开始】【结束】【包含结束】外,还有【包含一个】【匹配所有】可选择。

【包含一个】:【开始】到【结束】中需包含某个元素

【匹配所有】:存在1条正则表达式,有多个匹配结果的情况。如果勾选【匹配所有】,则匹配所有结果。如果不勾选【匹配所有】,则只匹配第1个结果。

 

 

3、正则表达式匹配

用正则表达式将字段中的部分或全部内容提取出来。

 

实例:在采集数据的时候我们发现,红框中的【书籍信息】只能作为一个字段提取下来。如果想要将【作者】独立为一个字段,就需要先将整个红框中的【书籍信息】作为一个字段提取下来,然后用【正则表达式匹配】将【作者】单独提取出来。

 

具体步骤为:

 

Step1:【书籍信息】提取下来后,有很多空格,先将所有空格去掉。(如果提取的字段中无空格,可跳过这一步)

在【添加步骤】中,选择【正则表达式替换】

【原始值】: 【书籍信息】(包含很多空格)

【正则表达式】:\s+(这条正则表达式的意思是,找到字段中所有的空格)

【替换为】:(将找到的全部空格替换为空)

【替换结果】:作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:9787506365437

 

 

Step2:用正则表达式找到【书籍信息】(去除全部空格)中的【作者】信息。

在【添加步骤】中,选择【正则表达式匹配】

【原始文本】: 作者:余华出版社:作家出版社出版年:2012-8-1页数:191定价:20.00元装帧:平装丛书:余华作品(2012版)ISBN:9787506365437

【正则表达式】:按照我们上面讲的方法,用八爪鱼的正则表达式工具,生成需要的正则表达式。

    【开始】:作者:

    【结束】出版社: 

     生成【正则表达式】 (?<=作者:)(.+?)(?=出版社:)

     点击【匹配】后,得到【匹配结果】:余华

     确定无误后,点击【应用】,此正则表达式就生效了,自动填充到【正则表达式】框中,找到内容 余华

点击【测试】,得到最终的【替换结果】:余华

最后点击【确定】,保存配置即可。

 

 

4、去除空格

包括三种,分别是【去除开头空格】、【去除结尾空格】、【去除两头空格】。

 

实例:【书籍信息】开头和结尾都有一串空格,选择【去除两头空格】后,点击确定,八爪鱼会去除两头的空格。

也可使用前两个选项去除开头或者结尾处的空格。

 

 

5、添加前缀

为字段添加前缀,很好理解。

 

【原始文本】:9.4

【添加前缀】:评分

【替换结果】:空评分9.4

 

 

6、添加后缀

为字段添加后缀,很好理解。

 

【原始文本】:9.4

【添加前缀】:

【替换结果】:9.4分

 

 

7、日期时间格式化

提供多种格式的日期格式,根据需求进行选择。

 

选中时间字段,选择【日期时间格式化】,将日期转化成需要的格式或者仅提取日期时间中的某一部分。

实例:将 2013-01-08 14:33:44 的日期格式转换为 2013-01-08 。

 

 

8、Html转码

Html语言是一种超文本标记语言,Html转码是将Html标记转化为普通文本,比如gt;转化为>,nbsp;转化为空格等等。