数据采集下来之后,有时候格式不是我们想要的,或者只想从一段数据里提取特定数据。以上需求,可通过八爪鱼的【格式化数据】功能实现。
本教程将结合实例,具体讲解。
一、【格式化数据】设置的位置
示例网址:https://book.douban.com/subject/4913064/
【格式化数据】是对提取到的字段进行格式化操作,我们先按照采集需求,提取字段。本示例中,我们提取此网页中的图书标题、图书简介和图片网址、页面网址等。
字段提取完成以后,鼠标移动到目标字段上,然后点击 按钮,选择【格式化数据】,就会进入【格式化数据】配置页面,也可以是纵向布局时直接点🖊小图标,或是是纵向布局时直接点后面的图标。
原始值:原始字段
结果:经过格式化步骤后,输出的字段结果
添加步骤:提供10个数据格式化选项:替换、正则表达式替换、正则表达式匹配、去除空格、添加前缀、添加后缀、时间格式化、时间戳转换、时区时间转换、Html。
以下将配合具体案例,详解这10个选项如何使用。
二、【格式化数据】10个选项详解
1、替换
将字段中的部分或全部内容替换为其他内容,支持文字、数字、符号、空格、换行符的替换。
实例:如果我们想将字段【808478人评价】中的文本【人评价】去掉,只留下数字【808478】。
具体步骤为:
在【添加步骤】中,选择【替换】
【原始值】: 808478人评价
【将】:人评价
【替换为】:空
点击【测试】,【替换结果】:808478
最后点击【确定】,保存配置即可。
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
【正则表达式】:按照我们上面讲的方法,用八爪鱼的正则表达式工具,生成需要的正则表达式。
【开始】:出版年:
【结束】:页数:
生成【正则表达式】: (?<=出版年:)(.+?)(?=页数:)
点击【匹配】后,得到【匹配结果】
确定无误后,点击【应用】,此正则表达式就生效了,自动填充到【正则表达式】框中,找到内容2012-8-1
点击【测试】,得到最终的【替换结果】:2012-8-1
最后点击【确定】,保存配置即可。
4、去除空格
包括三种,分别是【去除开头空格】、【去除结尾空格】、【去除两头空格】。
实例:【书籍信息】开头和结尾都有一串空格,选择【去除两头空格】后,点击确定,八爪鱼会去除两头的空格。
也可使用前两个选项去除开头或者结尾处的空格。
5、添加前缀
为字段添加前缀,很好理解。
【原始文本】:9.4
【添加前缀】:评分
【替换结果】:评分9.4
6、添加后缀
为字段添加后缀,很好理解。
【原始文本】:9.4
【添加前缀】:分
【替换结果】:9.4分
7、日期时间格式化
提供多种格式的日期格式,根据需求进行选择。
选中时间字段,选择【日期时间格式化】,将日期转化成需要的格式或者仅提取日期时间中的某一部分。
实例:将2013-10-09 12:27:14预览结果的日期格式转换为 2013-10-19 。
8、时间戳转换
将具体的时间转换为时间戳,如下将时间2013-10-09 12:27:14转换为时间戳1381292834
9.时区时间转换
不同时区时间转换,比如可以蒋北京时间转换为巴黎时间,也可以将巴黎时间转换为北京时间等。
10、Html转码
Html语言是一种超文本标记语言,Html转码是将Html标记转化为普通文本,比如gt;转化为>,nbsp;转化为空格等等。