一种从Web上自动获取列表数据的方法

文档序号:9597939阅读:526来源:国知局
一种从Web上自动获取列表数据的方法
【技术领域】
[0001]本发明涉及大数据技术领域,具体涉及一种从Web上自动获取列表数据的方法。
【背景技术】
[0002]随着大数据概念的发展与普及,越来越多的领域都期望从数据分析上获取价值;但要进行分析的数据不够、或分析数据只存在Web上;比如分析海关网站上公布的各月的进出口统计数据,这些数据海关不会按特定的格式(例如数据表结构)进行发布,只会每月按Web的形式进行公布。这些需要对这些数据进行分析的时候,只能通过手工获取,而且每个月都要获取一次,不仅劳动量大,而且容易出错。一般来说公布在Web上的数据在Html结构上存在相同性,因此可通过一次性的Html解析来循环对数据进行获取,并保存到指定的数据库上用于大数据的分析,从而进行进一步的分析来获取可用的价值信息。类似的对工商局公布的企业信息、股票的交易信息等数据的获取,都可通过此种方法,从而形成本地的数据资料库,并进一步进行数据的分析。
[0003]—般通过网上公布的Web数据是通过Html格式进行展示的,并且数据的展示一般是通过动态的数据装载,所以对于网上数据的获取,可通过程序进行获取后保存到特定的数据库。从网上对Web页面的获取,最重要的是对Web进行完整的Html获取并准确地解析。

【发明内容】

[0004]本发明解决的问题在于提供一种从Web上自动获取列表数据的方法,从而为特定领域的大数据分析提供了充分的数据来源,为特定领域的分析提高数据分析的准确性,产生有用的价值。
[0005]本发明解决上述技术问题的技术方案是:
[0006]所述的方法包括以下步骤:
[0007]步骤一,分析获取数据列表的Web页面HTML结构;
[0008]步骤二,配置任务名称、Web页面数据列表抓取相关配置并保存;
[0009]步骤三,判断是否有新数据;是则进入下一步骤;
[0010]步骤四,进行Web页面数据抓取相关配置;
[0011]步骤五,通过Web页面的URL后台获取数据抓取页面的整体HTML ;
[0012]步骤六,获取抓取数据的区域块、进行分行、分列、数据截取;
[0013]步骤七,判断数据是否已存在,是则结束,否则进入下一步骤;
[0014]步骤八,把数据保存到指定的数据库表上;
[0015]步骤九,判断是否有下一页需要抓取;有则返回到步骤四;否则结束;
[0016]结束。
[0017]所述的步骤二的配置是:
[0018]配置数据抓取的Web页面URL、翻页参数、页面编码、页面请求间隔时间、数据列表展示的排序顺序;配置Html结构上的数据列表抓取数据区域块;配置从数据抓取数据列表区域块的分行标识;配置数据抓取区域块的行数据的分列标识;配置数据抓取的列数据的截取值、数据保存字段名称、类型、长度,数据保存的数据库表;配置抓取的任务名称,在系统在后台通过判断是否有更新的数据,启动任务运行实现数据的自动抓取。
[0019]所述的通过配置指定数据抓取的Web页面URL、翻页参数、页面编码、页面请求间隔时间、数据列表展示的排序顺序等参数,用于后台的数据获取;其中数据抓取的Web页面URL用于获取页面Html结构的链接;翻页参数用于处理存在多页请求的情况,或通过自动增加页面数不断获取数据;页面编码用于指定请求时使用的编码,以避免获取的数据产生乱码;页面请求间隔时间用于设置请求的间隔时间,避免产生被服务器屏蔽的情况;数据展示的排序顺序,存在正序与倒序两种情况,对于正序的排序,下一次的数据抓取任务要从上一次的数据抓取最后页面数抓起,对于倒序的排序,下一次的数据抓取任务从第一页开始抓起。
[0020]所述的Web页面URL获取了 Html数据后,通过系统自动判断存在的数据区域块,并返回给操作人员选择确定数据的抓取区域块,用于后续的行数据获取。
[0021]所述的配置从数据抓取数据列表区域块的分行标识,通过截取后的数据抓取区域块,判断整个数据区域块的分行标识,从而实现整个数据块的行数据分隔,用于后续的列数据获取。
[0022]所述的配置数据抓取区域块的行数据的分列标识,通过分行后获取的行数据,判断每行数据的分行标识,从而实现每行数据中各列数据的分隔,用于最终的各列数据的抓取。
[0023]所述的配置数据抓取的列数据的截取值、数据保存字段名称、类型、长度,数据保存的数据库表,对要数据抓取的列数据进行选择,并对各列通过Html形式展示的数据可能存在的其他标识进行去除,同时配置数据抓取保存的数据表,指定各选择的列的数据的保存字段、类型、长度,用于数据的保存。
[0024]所述的系统在后台通过判断是否有更新的数据,启动任务运行实现数据的自动抓取,是通过以下规则进行判断的:(I)如果系统上不存在数据,则需启动任务进行数据获取,并保存系统的最后获取标识;(2)系统上存在获取的一部分数据,首先判断任务的数据列表是正序显示还是倒序显示;如果数据列表是正序显示,跳转到最后获取数据的页数上并通过MD5所有字段的数据,与系统上已经存在的最后获取数据判断是否存在于系统上,如果不存在需启动任务进行获取;如果数据列表是倒序显示则通过获取第一条数据的所有字段的MD5结果,判断数据列表的第一条数据是否已经存在于系统上,如果不存在需启动任务进行获取;(3)后台判断是否需要更新的周期,可通过系统的自学习进行,一开始是通过半个小时进行判断是否需要数据更新,在后续不断记录需更新数据的时间,从而学习判断各数据抓取任务的抓取时间,从而在平均的时间间隔内启动是否需要判断的时间进行判断。
[0025]本发明就是通过技术把Web通过URL获取下来,并进行自动的Html分析并获取期望的数据,并保存到数据库上,用于数据的分析,解决了要进行特定的大数据分析时没有数据或数据量不足、或数据只存在Web上无法对数据直接使用的问题,从而为特定领域的大数据分析提供了充分的数据来源,提高了数据分析的准确性。本发明可多配置不同的数据抓取任务,轻松快捷实现多种数据的抓取任务,为不同的数据分析提供了强大的支持。
【附图说明】
[0026]下面结合附图对本发明进一步说明:
[0027]图1是本发明系统流程图。
【具体实施方式】
[0028]如图1所示,本发明具体包含以下几个步骤:
[0029]步骤一、把系统部署在Tomcat上,配置好Mysql数据库,运行整个系统;
[0030]步骤二、对要进行抓取的数据获取Web页面的RUL,并分析存在相似结构的Html数据;
[0031]步骤三、新增网上数据抓取任务,配置任务名称等信息;
[0032]步骤四、配置数据抓取的Web页面URL、翻页参数、页面编码、页面请求间隔时间、数据展示的排序顺序;
[0033]步骤五、配置Html结构上的数据抓取数据区域块;
[0034]步骤六、配置从数据抓取数据区域块的分行标识;
[0035]步骤七、配置数据抓取区域块的行数据的分列标识;
[0036]步骤八、配置数据抓取的列数据的截取值、数据保存字段名称、类型、长度,数据保存的数据库表;
[0037]步骤九、对以前配置的任务相关参数进行测试验证,验证通过了把所有的配置信息保存到系统上。
[0038]步骤十、后台程序通过判断数据列表是否有更新,有更新时启动后台数据列表抓取任务,从而实现数据的自动抓取。
[0039]具体而言,配置数据抓取的Web页面URL、翻页参数、页面编码、页面请求间隔时间、数据列表展示的排序顺序;配置Html结构上的数据列表抓取数据区域块;配置从数据抓取数据列表区域块的分行标识;配置数据抓取区域块的行数据的分列标识;配置数据抓取的列数据的截取值、数据保存字段名称、类型、长度,数据保存的数据库表;配置抓取的任务名称,在系统在后台通过判断是否有更新的数据,启动任务运行实现数据的自动抓取。
[0040]所述的通过配置指定数据抓取的Web页面URL、翻页参数、页面编码、页面请求间隔时间、数据列表展示的排序顺序等参数,用于后台的数据获取;其中数据抓取的Web页面URL用于获取页面Html结构的链接;翻页参数用于处理存在多页请求的情况,或通过自动增加页面数不断获取数据;页面编码用于指定请求时使用的编码,以避免获取的数据产生乱码;页面请求间隔时间用于设置请求的间隔时间,避免产生被服务器屏蔽的情况;数据展示的排序顺序,存在正序与倒序两种情况,对于正序的排序,下一次的数据抓取任务要从上一次的数据抓取最后页面数抓起,对于倒序的排序,下一次的数据抓取任务从第一页开始抓起。
[0041]所述的Web页面URL获取了 Html数据后,通过系统自动判断存在的数据区域块,并返回给操作人员选择确定数据的抓取区域块,用于后续的行数据获取。
[0042]所述的配置从数据抓取数据列表区域块的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1