一种基于图像曲线推算的网络受保护指数数据的获取方法转让专利

申请号 : CN201610445382.8

文献号 : CN106097403B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾庆田王松松李超段华赵中英

申请人 : 山东科技大学

摘要 :

本发明涉及一种基于图像曲线推算的网络受保护指数数据的获取方法,具体步骤包括:(1)目标数据定位;(2)目标数据的图像获取;(3)目标数据的预处理:对步骤(3)获取的目标数据的图像进行二值化、灰度化处理;(4)基于图像曲线推算进行目标数据识别,设定每个日期节点之间的距离为step,设定每个像素高度代表的指数值为perPixeValue,具体步骤包括:a、基于像素的曲线点定位;b、基于比例尺的曲线点值的计算:按照比例或刻度即可推算出实际指数值。本发明利用图像曲线和图像曲线的比例尺等信息,进行曲线上点值的推算,且该方法的准确性很高。

权利要求 :

1.一种基于图像曲线推算的网络受保护指数数据的获取方法,其特征在于,具体步骤包括:(1)目标数据定位;目标数据即要获取的网络受保护指数数据曲线;所述目标数据定位为目标数据网站半监督形式登录,包括登录目标数据所在站点、定位利用延时加载策略下的目标数据,具体步骤包括:①利用网络抓包工具,获取正常登录目标数据所在站点时的Cookie信息,Cookie信息包括用户名、密码、浏览过的网页、停留的时间;

②附带上Cookie信息绕过登录过程,直接进入登录页面,输入用户名、密码、验证码,检查用户名、密码、验证码是否输入,如果输入,进入步骤④;否则,进入步骤③;

③判断是否到达重试次数a1,如果是,当前关键词爬取失败,调至下一关键词;否则,等待固定时间t1后进入步骤②;

④设置关键词进行搜索,搜索过程中判断等待响应时间是否达到t2,如果未达到,则进入步骤(2),如果达到,进入步骤⑤;

⑤判断是否达到重试次数a2,如果是的话,则重试失败,否则,进入步骤④;

(2)目标数据的图像获取;利用模拟鼠标移动,进行曲线上值的动态显示和采集,具体步骤包括:Ⅰ、将目标数据的图像移动至浏览器的可视区域;

Ⅱ、截屏获取包括目标数据的图像在内的整个浏览器页面图像,并获取该图像的尺寸;

Ⅲ、步骤Ⅱ获取的图像中,获取目标数据的图像的尺寸;

Ⅳ、计算步骤Ⅱ获取的图像与目标数据的图像的尺寸比例;

Ⅴ、按照步骤Ⅳ所述尺寸比例裁剪得到目标数据的图像;

(3)目标数据的图像预处理:对步骤(2)获取的目标数据的图像进行二值化、灰度化处理;

(4)基于图像曲线推算进行目标数据识别,通过步骤(3)获取目标数据的图像,所述目标数据的图像中,即网络受保护指数数据曲线的图像中,对网络受保护指数数据曲线建立坐标系,横坐标表示日期,纵坐标表示指数,从网络受保护指数数据曲线的原点出发,按照以下操作遍历每个日期节点,具体步骤包括:a、基于像素的曲线点定位:获取日期节点对应的相邻的若干个像素点与所述日期节点的高度,并求取所述若干个高度值的平均值dis作为该日期节点对应的高度值,该日期节点对应的网络受保护指数数据曲线的点的坐标表示为(date,dis);

b、距离像素化:对日期节点对应的高度值dis进行像素化转换,转换成该日期节点对应的网络受保护指数数据曲线的点距离该日期节点的像素个数npi;

c、比例尺像素计算:计算比例尺上的点到横坐标上的距离,转化为像素个数,比例尺上的点到横坐标上的距离除以像素个数,得到每个像素代表的实际值的大小val;

d、推算日期节点对应的网络受保护指数数据曲线的点的实际值real:real=val*npi;

e、存储数据(date,real)。

2.根据权利要求1所述的一种基于图像曲线推算的网络受保护指数数据的获取方法,其特征在于,所述目标数据的图像预处理,包括:锐化、钝化、模糊、二值化、缩放、灰度化处理。

说明书 :

一种基于图像曲线推算的网络受保护指数数据的获取方法

技术领域

[0001] 本发明涉及一种基于图像曲线推算的网络受保护指数数据的获取方法,属于网络通讯技术领域。

背景技术

[0002] Web上数据类型主要分为最常见的文本数据类型、图片类型和音视频流数据。传统网络爬虫爬取的数据的方法有两种:第一类方法是基于URL的目标站点加载技术的Web数据获取方法;第二类方法是基于开放平台SDK接口调用技术的Web数据获取方法。
[0003] 第一类方法以目标资源URL作为起点,访问URL站点的数据,这些URL站点通常不需要授权或登录即可看到目标数据。这些数据以文本数据居多,如HTML页面源代码、URL地址、字符数字序列等。而且传统Web数据大多是结构化数据,如HTML页面或XML数据通过标签元素组织内容;JSON数据类型由自定义的数组和对象构成;URL地址以万维网联盟的互联网标准RFC1738制定的规范来定位网络资源。
[0004] 爬取到数据后只需要做简单的处理就可以直接使用,比如对于HTML页面源代码,关键数据会包含在HTML标签中,可以使用XPath语言或CSS选择器即可定位到具体标签内容;对于URL地址数据,使用正则表达式可以提取URL地址的协议、主机地址、资源名、查询参数等信息。
[0005] 但是,网络受保护的数据的加载方式通常是动态延时加载,即只在需要显示的时候加载,第一类方法很难获取并识别具有受保护网络数据特点(权限验证,动态加载,图片格式数据)的目标数据。
[0006] 第二类Web数据的获取方法是基于网络开放平台提供的SDK,进行模拟应用开发,通过频繁调用数据的API接口进行数据的获取。该类方法的优点是获取的Web数据是结构化的数据,性能稳定,获取效率高。但是,第二类方法也存在一定的缺点:首先,对于获取的权限分级明显,如果没有获得较高的权限,调用接口的次数会大大降低,获取的效率也会大大降低。其次,获取的内容相对固定,缺少灵活性。第三,获取的数据格式以文本为主,大多数数据需要二次爬取。
[0007] 网络受保护指数数据是受保护数据的子集,是以数字作为关键数据表现形式的网络受保护数据,例如评论数、转载数、网页访问数,关键词搜索次数的以指数曲线的方式综合统计的数据。数据平台将原本以文本类型表示的数字信息转化为图片数据,将数字绘制到图片上,返回给用户。通常,受保护指数数据以不同时间单元显示,并经常通过曲线图等图表的形式展现出来。网络保护数据是通过传统网络爬虫无法爬取或即使爬取到也无法通过简单处理进行使用的网络数据。因此,基于网络受保护数据的特点,需要解决的技术问题包括以下几个方面:
[0008] 第一,如何模拟登录通过网络受保护指数数据的权限验证:随着Web技术的发展,数据平台为了防止用户频繁访问数据,受保护数据的网站的权限验证技术逐步提高,通过简单的模拟登录技术使爬虫通过验证已经越来越难以实现。一般表现为需要注册为数据平台用户并登录。同时,有些数据平台在登录注册过程中需要输入验证码等验证操作。因此,如何模拟用户登录,通过网络受保护指数数据网站的权限验证是解决的重要技术问题之一;
[0009] 第二,如何实现延迟页面数据的动态加载:传统网络爬虫能够爬取的目标数据,一般是随URL对应的网页一同加载并显示,爬虫只需要爬取到URL对应的页面源代码,即可通过过滤等处理得到目标数据。而网络受保护指数数据的加载方式通常是动态延时加载,即只在需要显示的时候加载,因此,如何模拟触发目标,实现数据的动态加载技术是获取网络受保护指数数据要解决的技术问题。
[0010] 第三.图像曲线数据的推导技术:网络受保护指数数据有时不是文本类型呈现,多以图片类型为主,数据平台可能通过加密算法将关键信息加密后绘到图片上,图片传输到网页后进行解密展示,加密后的图片可能打乱了关键信息的排列顺序,加入了干扰信息,或对图片进行旋转等操作使得最终图片数据难以辨别。由于网络受保护指数数据的是将关键数据绘制到图片内容中,并不是结构化数据,关键数据与图片其他部分最终都以像素矩阵的形式呈现到显示器等设备中。传统的元素定位和处理并不能提取到关键数据。因此,如何利用曲线坐标进行和比例尺进行曲线数据的推导是受保护指数数据识别的关键技术问题。

发明内容

[0011] 针对现有技术的不足,本发明提供了一种基于图像曲线推算的网络受保护指数数据的获取方法;
[0012] 本发明面向受保护网站指数数据(百度指数,360指数,腾讯视频指数等)的获取,本发明首先利用自动化测试工具,模拟指数数据显示之前用户在数据平台的一系列操作,如登录、输入搜索关键词、设置搜索时间等。然后利用模拟鼠标移动,进行曲线上值的动态显示和采集,最后,利用改进的OCR技术实现目标数据的数值获取。本发明在分析和调研现有技术的基础上,实现了半自动的受保护数据网站的权限登录。通过智能的超时重加载技术,实现动态延时数据的加载,实现受保护网站网络受保护指数数据获取的完整性。通过图像曲线推算技术,实现爬取的图像曲线数据的识别。
[0013] 术语解释
[0014] Cookie:指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密);
[0015] 本发明的技术方案为:
[0016] 一种基于图像曲线推算的网络受保护指数数据的获取方法,具体步骤包括:
[0017] (1)目标数据定位;目标数据即要获取的网络受保护指数数据曲线;
[0018] (2)目标数据的图像获取;
[0019] (3)目标数据的图像预处理:对步骤(2)获取的目标数据的图像进行二值化、灰度化处理;
[0020] (4)基于图像曲线推算进行目标数据识别,通过步骤(3)获取目标数据的图像,所述目标数据的图像中,即网络受保护指数数据曲线的图像中,对网络受保护指数数据曲线建立坐标系,横坐标表示日期,纵坐标表示指数,从网络受保护指数数据曲线的原点出发,按照以下操作遍历每个日期节点,具体步骤包括:
[0021] a、基于像素的曲线点定位:获取日期节点对应的相邻的若干个像素点与所述日期节点的高度,并求取所述若干个高度值的平均值dis作为该日期节点对应的高度值,该日期节点对应的网络受保护指数数据曲线的点的坐标表示为(date,dis);
[0022] b、距离像素化:对日期节点对应的高度值dis进行像素化转换,转换成该日期节点对应的网络受保护指数数据曲线的点距离该日期节点的像素个数npi;
[0023] c、比例尺像素计算:计算比例尺上的点到横坐标上的距离,转化为像素个数,比例尺上的点到横坐标上的距离除以像素个数,得到每个像素代表的实际值的大小val;
[0024] d、推算日期节点对应的网络受保护指数数据曲线的点的实际值real:real=val*npi;
[0025] e、存储数据(date,real)。
[0026] 目标数据的图像预处理后,图像中的网络受保护指数数据曲线与其它无用信息在像素上可以明显的区分,根据像素值的不同可以定位到网络受保护指数数据曲线上的点。由于图像中的网络受保护指数数据曲线有一定的宽度,所以网络受保护指数数据曲线上点可能占据多个相邻像素点,为了使推算近似真实值,我们可以取这几个相邻像素点高度的平均值。
[0027] 根据本发明优选的,所述步骤(2),自适应下采集目标数据的图像,具体步骤包括:
[0028] ①将目标数据的图像移动至浏览器的可视区域;
[0029] ②截屏获取包括目标数据的图像在内的整个浏览器页面图像,并获取该图像的尺寸;
[0030] ③步骤②获取的图像中,获取目标数据的图像的尺寸;
[0031] ④计算步骤②获取的图像与目标数据的图像的尺寸比例;
[0032] ⑤按照步骤④所述尺寸比例裁剪得到目标数据的图像。
[0033] 根据本发明优选的,步骤(1)中,所述目标数据定位为目标数据网站半监督形式登录,包括登录目标数据所在站点、定位利用延时加载策略下的目标数据,具体步骤包括:
[0034] ①利用网络抓包工具,获取正常登录目标数据所在站点时的Cookie信息,Cookie信息包括用户名、密码、浏览过的网页、停留的时间;
[0035] 浏览器首次发送请求时会获取到服务器返回的Cookie信息并存入本地,此后浏览器向同一服务器发送的所有请求都将携带该Cookie信息。网站服务器在响应每一次请求时都可以对Cookie信息进行修改,并重新写入浏览器本地的文件系统。网站在用户登录时,会产生标识已登录的信息,并修改Cookie信息。所以,依据登录后的其他请求,服务器能够识别当前用户。根据这一特性,本发明利用网络抓包工具获取正常登录数据平台时的Cookie信息,在下一次请求时附带上Cookie信息便可以绕过数据爬取前登录操作。
[0036] ②附带上Cookie信息绕过登录过程,直接进入登录页面,输入用户名、密码、验证码,检查用户名、密码、验证码是否输入,如果输入,进入步骤④;否则,进入步骤③;
[0037] 由于Cookie信息是有效期的,过期的Cookie信息无法登录到数据平台中。为了使登录过程可以稳定、长期有效地运行,因此,本发明使用需要用户配合的登录方法。登录过程最大的问题是验证码问题,验证码图片本身加入了很多噪音信息,由不同字体的字母、数字经过旋转、拉伸等变换形成,可识别度很低。而让用户识别并输入验证码可以保证成功登录。
[0038] ③判断是否到达重试次数a1,如果是,当前关键词爬取失败,调至下一关键词;否则,等待固定时间t1后进入步骤②;
[0039] 加入等待固定时间的目的便是为了给用户留出输入用户名等信息的时间,之所以中间的流程中还需要判断是否达到重试次数,是防止用户在某一次等待时间内没能成功输入用户信息,或验证码输入错误,增加重试的次数能保证用户准确的完成输入。
[0040] ④设置关键词进行搜索,搜索过程中判断等待响应时间是否达到t2,如果未达到,则进入步骤(2),如果达到,进入步骤⑤;
[0041] ⑤判断是否达到重试次数a2,如果是的话,则重试失败,否则,进入步骤④。
[0042] 重试次数a1、重试次数a2、等待固定时间t1、t2均是经验值,与目标数据网站以及网络环境有关,均是可调参数,可以根据具体的抓取情况进行设定。
[0043] 受保护指数数据爬取过程中,都是按照严格的先后顺序执行的。针对数据定位的每个操作也是如此,即登录、设置搜索关键词、设置日期后提交数据进行搜索,必须等待页面数据显示后才可以进行下一步的图像采集。由于网页的加载受网络带宽、网站服务器反爬虫机制等因素影响,网页数据很难在短时间加载完毕。因此,本发明提出了一种延迟页面超时重加载策略,通过该策略,实现网页数据的完整加载,为下一步的目标数据的图像提取提供完整且准确的数据。
[0044] 根据本发明优选的,所述对目标数据的图像进行预处理,包括:锐化、钝化、模糊、二值化、缩放、灰度化处理。
[0045] 本发明的有益效果为:
[0046] 1、本发明利用超时重加载策略,实现页面的完整获取。
[0047] 2、本发明提出的自适应下的图像信息采集,能够对目标数据图像移动到可视区域,而后进行目标曲线图像采集。
[0048] 3、本发明利用图像曲线和图像曲线的比例尺等信息,进行曲线上点值的推算,且该方法的准确性很高。

附图说明

[0049] 图1为本发明所述基于图像曲线推算的网络受保护指数数据的获取方法的流程框图;
[0050] 图2为本发明目标数据的图像获取的流程示意图;
[0051] 图3为本发明基于图像曲线推算进行目标数据识别的流程示意图;
[0052] 图4为实施例获取的网络受保护指数数据曲线的示意图;
[0053] 图5为本发明目标数据定位的流程示意图。

具体实施方式

[0054] 下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
[0055] 实施例
[0056] 一种基于图像曲线推算的网络受保护指数数据的获取方法,如图1所示,具体步骤包括:
[0057] (1)目标数据网站登录;
[0058] (2)自适应下采集目标数据的图像的定位与采集:利用自动化测试工具Selenium Webdriver,模拟目标数据显示之前用户在数据平台的操作;登录,输入搜索关键词,设置搜索时间等。加载目标数据的页面,并利用html中的图像标签将目标数据图像显示在浏览器显示范围之内,基于目标数据图像与浏览器页面大小的比例,进行目标图像的采集。
[0059] (3)目标数据的图像预处理:对步骤(3)获取的目标数据的图像进行二值化、灰度化处理;
[0060] (4)基于图像曲线推算进行目标数据识别,通过步骤(3)获取目标数据的图像,所述目标数据的图像中,即网络受保护指数数据曲线的图像中,网络受保护指数数据曲线的图像如图4所示,横坐标表示日期,纵坐标表示指数,从网络受保护指数数据曲线的原点出发,按照以下操作遍历每个日期节点,具体流程如图3所示,具体步骤包括:
[0061] a、基于像素的曲线点定位:获取日期节点对应的相邻的若干个像素点与所述日期节点的高度,并求取所述若干个高度值的平均值作为该日期节点对应的高度值,该日期节点对应的网络受保护指数数据曲线的点的坐标表示为(date,dis);
[0062] b、距离像素化:对日期节点对应的高度值dis进行像素化转换,转换成该日期节点对应的网络受保护指数数据曲线的点与该日期节点的像素个数npi;
[0063] c、比例尺像素计算:计算比例尺上的点到横坐标上的距离,转化为像素个数,比例尺上的点到横坐标上的距离除以像素个数,得到每个像素代表的实际值的大小val;
[0064] d、推算日期节点对应的网络受保护指数数据曲线的点的实际值real:real=val*npi;
[0065] e、存储数据(date,real)。
[0066] 目标数据的图像预处理后,图像中的网络受保护指数数据曲线与其它无用信息在像素上可以明显的区分,根据像素值的不同可以定位到网络受保护指数数据曲线上的点。由于图像中的网络受保护指数数据曲线有一定的宽度,所以网络受保护指数数据曲线上点可能占据多个相邻像素点,为了使推算近似真实值,我们可以取这几个相邻像素点高度的平均值。
[0067] 所述步骤(2),自适应下采集目标数据的图像,如图2所示,具体步骤包括:
[0068] ①将目标数据的图像移动至浏览器的可视区域;
[0069] ②截屏获取包括目标数据的图像在内的整个浏览器页面图像,并获取该图像的尺寸;
[0070] ③步骤②获取的图像中,获取目标数据的图像的尺寸;
[0071] ④计算步骤②获取的图像与目标数据的图像的尺寸比例;
[0072] ⑤按照步骤④所述尺寸比例裁剪得到目标数据的图像。
[0073] 步骤(1)中,所述目标数据定位为目标数据网站半监督形式登录,包括登录目标数据所在站点、定位利用延时加载策略下的目标数据,如图4所示,具体步骤包括:
[0074] ①利用网络抓包工具,获取正常登录目标数据所在站点时的Cookie信息,Cookie信息包括用户名、密码、浏览过的网页、停留的时间;
[0075] 浏览器首次发送请求时会获取到服务器返回的Cookie信息并存入本地,此后浏览器向同一服务器发送的所有请求都将携带该Cookie信息。网站服务器在响应每一次请求时都可以对Cookie信息进行修改,并重新写入浏览器本地的文件系统。网站在用户登录时,会产生标识已登录的信息,并修改Cookie信息。所以,依据登录后的其他请求,服务器能够识别当前用户。根据这一特性,本发明利用网络抓包工具获取正常登录数据平台时的Cookie信息,在下一次请求时附带上Cookie信息便可以绕过数据爬取前登录操作。
[0076] ②附带上Cookie信息绕过登录过程,直接进入登录页面,输入用户名、密码、验证码,检查用户名、密码、验证码是否输入,如果输入,进入步骤④;否则,进入步骤③;
[0077] 由于Cookie信息是有效期的,过期的Cookie信息无法登录到数据平台中。为了使登录过程可以稳定、长期有效地运行,因此,本发明使用需要用户配合的登录方法。登录过程最大的问题是验证码问题,验证码图片本身加入了很多噪音信息,由不同字体的字母、数字经过旋转、拉伸等变换形成,可识别度很低。而让用户识别并输入验证码可以保证成功登录。
[0078] ③判断是否到达重试次数a1,如果是,当前关键词爬取失败,调至下一关键词;否则,等待固定时间t1后进入步骤②;
[0079] 加入等待固定时间的目的便是为了给用户留出输入用户名等信息的时间,之所以中间的流程中还需要判断是否达到重试次数,是防止用户在某一次等待时间内没能成功输入用户信息,或验证码输入错误,增加重试的次数能保证用户准确的完成输入。
[0080] ④设置关键词进行搜索,搜索过程中判断等待响应时间是否达到t2,如果未达到,则进入步骤(2),如果达到,进入步骤⑤;
[0081] ⑤判断是否达到重试次数a2,如果是的话,则重试失败,否则,进入步骤④。
[0082] 重试次数a1、重试次数a2、等待固定时间t1、t2均是经验值,与目标数据网站以及网络环境有关,均是可调参数,可以根据具体的抓取情况进行设定。
[0083] 受保护指数数据爬取过程中,都是按照严格的先后顺序执行的。针对数据定位的每个操作也是如此,即登录、设置搜索关键词、设置日期后提交数据进行搜索,必须等待页面数据显示后才可以进行下一步的图像采集。由于网页的加载受网络带宽、网站服务器反爬虫机制等因素影响,网页数据很难在短时间加载完毕。因此,本发明提出了一种延迟页面超时重加载策略,通过该策略,实现网页数据的完整加载,为下一步的目标数据的图像提取提供完整且准确的数据。
[0084] 所述对目标数据的图像进行预处理,包括:锐化、钝化、模糊、二值化、缩放、灰度化处理。
[0085] 本实施例通过在百度指数上进行数据爬取和识别实验,本发明根据预处理后的百度指数趋势曲线图推算出最终的百度指数数据。为了直观的展示推算值和真实值之间的误差,我们将两组值以折线图的形式绘制到同一个坐标系下,对比结果如图6所示,由图6可知,真实值和推算指的折线基本重合,误差甚微。具体误差率和精确差值如表2:
[0086] 表2
[0087]
[0088]
[0089] 由表2可以看出,通过本实施例的方法获取并识别的数据与真实数据相比,最大误差为0.36%,平均误差为0.19%。从结果来看,该思路爬取到的百度指数可以比较准确地拟合真实值的趋势曲线。对于数据分析来说完全可以胜任,基本不会影响整体走势。
[0090] 同时,本实施例进行了不同搜索词频指数的爬取实验,我们将频次分为低中高三个等级,低频关键词在0-1000范围,中频关键词在1000-100000范围,高频关键词搜索次数在10万以上。低频词我们选择”无觅网”、“屌丝”(2011年数据),中频词有”孔雀东南飞“、“平凡的世界”,高频词有“NBA”、“快乐大本营”。利用指数推算方法获取到的曲线值与真实值进行比较之后的误差如表3所示:
[0091] 表3
[0092]关键词 推算模式平均误差
屌丝 0.22%
无觅网 0.20%
孔雀东南飞 0.20%
平凡的世界 0.19%
NBA 0.19%
快乐大本营 0.17%
[0093] 推算模式的误差率始终不会超过0.3%,在这个误差内,对于大量指数数据的分析和应用,总体变化趋势的研究应该是足够了。