技术领域
[0001] 本
发明涉及一种计算机技术,主要利用
数据挖掘与机器学习方法来解决网络爬虫在
电子商务领域的自适应匹配问题,属于计算机技术、数据挖掘、机器学习及网络爬虫交叉技术应用领域。
背景技术
[0002] 随着互联网信息量的爆炸式增长,以及电商
网站的不断兴起,越来越多的人开始关注如何在
大数据量的电商网络中找到自己喜欢的商品,对于
软件行业专业人员也越来越倾向于在大数据量中做自动化的处理,以提高
信息检索效率并达到针对性推荐信息的目的。爬虫作为网页信息获取的主要途径也为更多人所熟知。然而,现阶段的网络爬虫程序的编写通常需要专业的软件开发人员通过查询页面代码、研究其对应的规则,并且对于不同的网站、页面也需要编写不同的爬虫程序,并没有一个能够具有自适应功能的程序来自动引导爬虫爬取同构信息。同时,随着各大电商相继崛起,现代社会的人们已经更倾向于在线购物,这也成为越来越无法阻挡的趋势,用户如何在大数据量的电商网站中找到需要的信息是一个很严峻的挑战。因此,本发明进行的是将爬虫程序自动化输出和电商领域相结合,进行了针对于电商的自适应爬虫方法研究,用于自动输出某一电商网站上特定信息的爬虫程序,而不需要人工进行有针对性地编写爬虫程序。
[0003] 爬虫程序,能够自动化浏览网络并且能够自动采集所有可以
访问到的页面信息。根据研究,目前业界对爬虫技术及自适应爬虫的分析研究大多局限在某些爬虫
算法的改进,如性能方面、解决页面和统一资源
定位符(URL)的主题相关性判别的问题等;或是专
门使用特制爬虫爬取某一领域内的信息和特定数据,如地理
位置信息、网络社交信息等;或是在爬取过程中提高
搜索引擎的缓存效率等。其中绝大多数是基于搜索引擎的爬虫。因此本发明使用机器学习引导爬虫程序具有自适应功能,从而爬取不同页面。
[0004] 机器学习是一门结合多领域学科的交叉技术,涉及到统计学、数学、哲学、信息论等方面。机器学习能够引导计算机模拟和实现人的思想过程或行为,不断改善其自身已有的结构,最终能够获取到新的知识、拥有新的行为。
发明内容
[0005] 技术问题:本发明提出一种基于机器学习的自适应网络爬虫方法,将网络爬虫在数据挖掘与机器学习技术下进行自适应训练,能够自动输出爬虫程序需要的模式(pattern),从而实现网络爬虫的自适应性。
[0006] 技术方案:本发明具体用到的机器学习方法为K邻近分类算法(IBk)。K邻近分类算法可以根据每个测试样本的样本信息来学习模型,可以更好地拟合局部的样本特性。经过实践证明,K邻近分类算法较为合适,准确率较高。
[0007] 本发明所述的基于机器学习的自适应网络爬虫方法,实现了一个可以自动引导爬虫,使其具有自适应功能,爬取不同页面的自适应程序。我们通过对不同电商网站的研究,使用机器学习和数据挖掘方法输入京东商城和一号店网站的
笔记本电脑价格信息,最终实现的效果是:通过机器学习过程对输入数据的分析,使得爬虫程序对爬取的不同网站具有自适应性。
[0008] 本发明所述的基于机器学习的自适应网络爬虫方法流程如下:
[0009] 步骤1.获取数据:获取到浏览器
插件提供的整个页面代码和需要爬取的部分代码在整个页面的位置,位置表示为数组形式,数组中的每一个数字表示该行代码在整个页面代码中的第几个标签下的第几个;其中,位置数组[1,2,6,3,1,2,1,3,2,2,1],数组中第一位的1表示为整个页面代码中最外面的第一层标签,即为html;第二位的2表示在上一层的html标签下的第二个标签body;第三位的6表示在上一层body标签下的第6个标签,即为div,以此类推;
[0010] 步骤2.特征提取:使用页面代码中每一个标签的美国信息交换标准代码(ASCII码)值来作为一个特征,用于该页面在数据集中的表示方法,以满足输入要求;使用标准代码提取模
块将获取到整个页面的所有标签标准代码的和值并输出,同时统计整个页面的标签数量;
[0011] 步骤3.异构数据的归一化过程:由于每个页面的结构和书写方式不同,因此其页面代码的标签数量也不同,表现出了数据的异构性;由于在机器学习与数据挖掘方法中需要整齐的数据进行自适应的构建,因此将标签数量归一化;经过大部分的统计结果,认为1500个标签是个合理的值,因此统一将1500作为一个标准,如果某一页面的标签数量恰好为1500,则直接进入步骤5进行
训练数据的构建;如果标签数量少于1500,则进入步骤4补齐数据,以满足数据挖掘和机器学习方法的要求;如果标签数量多余1500,则只截取前1500个,舍弃多余的;
[0012] 步骤4.模糊数据补充:对于标签数量少于1500的页面,使用稀疏数据表示方法,即用问号“?”补齐到1500;当文件格式满足要求后,进入到步骤5;
[0013] 步骤5.训练数据构建:数据挖掘和机器学习方法中唯一识别的文件由两部分组成,分别为文件头和数据,文件头包括关系
声明(@relation)和属性声明(@attribute),属性声明部分声明属性名称和类型,数据部分由数据声明(@data)引导,数据部分中的每一行为一个实例,数据内容分别对应各个声明的属性;创建训练数据集时,声明关系,属性和数据,在这里,有1501个属性,分别为设定的1500个标签的标准代码和值以及某一位的位置值,也就是说,根据已知的11位位置信息,需要创建11个训练集对应于11个输入文件分别进行训练,每个训练集中有1500个标签和一位位置信息,进行11次训练和测试,最终输出11位的位置值;
[0014] 例如,经过归一化和训练数据构建后,某一行训练数据即为:
[0015] 437,402,423,423,546,423,……,?,?,?,1
[0016] 表示某一网页中的所有标签标准代码和值,数量不足1500的使用问号补充,最后的数字1即为位置数组中的第一位。
[0017] 同时,也要创建测试集的文件,文件中只有一个测试实例,同样有1501个属性,其中未知、需要最终输出的位置用问号表示,对应于最终输出结果中的预测值。
[0018] 步骤6.自适应训练:载入训练集,选择IBk分类算法进行训练,训练后保存模型;经过实践证明,该方法较为合适,准确率较高。
[0019] 步骤7.学习方法验证:在训练结果的
基础上(或载入已保存的模型),接着载入测试集文件,运行后在输出结果中提取测试集中未知目标数据对应的预测值;
[0020] 步骤8.自适应模式生成:根据训练生成的位置数组,还原到整个页面中对应于该位置的部分代码,根据爬虫程序规则提取程序中需要补充的模式,代入到爬虫代码中,即可生成自适应爬虫程序。
[0021] 有益效果:本发明所述的基于机器学习的自适应网络爬虫方法,将网络爬虫与机器学习技术相结合,应用于
电子商务领域,通过提取网页特征,对其在机器学习及数据挖掘分析过程下进行自适应训练,使得网络爬虫程序对爬取的不同网站具有一定的自适应性。
[0022] 具体来说,本发明所述的方法具有如下的有益效果:
[0023] (1)本发明所述方法通过机器学习过程对输入数据的分析,使得爬虫程序对爬取的不同网站具有自适应性。
[0024] (2)本发明所述方法能够在大数据量的电商网络中自适应爬取所需数据,提高了信息检索效率,降低了专业爬虫开发人员的时间成本。
[0025] (3)本发明所述方法通过对用户在网站上所关注的数据的分析,直接得到其他未浏览网站上的相关数据呈现给用户,具有一定的易用性。
附图说明
[0026] 图1是基于机器学习自适应网络爬虫方法的
流程图。
[0027] 图2是以K邻近分类算法为例的训练结果图。
[0028] 图3是以K邻近分类算法为例的测试结果图。
具体实施方式
[0029] 下面对本发明附图的某些实施方式作更详细的描述。在本例中:已知A、B网页HTML代码,自适应输出C网页中的爬虫模式。
[0030] 根据图1,本发明建立在数据挖掘及机器学习技术的基础上,具体实施方式有:
[0031] 1.获取数据:
[0032] 获取到浏览器插件提供的整个页面代码和需要爬取的部分代码在整个页面的位置,位置表示为数组形式,数组中的每一个数字表示该行代码在整个页面代码中的第几个标签下的第几个。例如,位置数组[1,2,6,3,1,2,1,3,2,2,1],数组中第一位的1表示为整个页面代码中最外面的第一层标签,即为html;第二位的2表示在上一层的html标签下的第二个标签body;第三位的6表示在上一层body标签下的第6个标签,即为div,以此类推;
[0033] 由此,在A网页中,获取到的位置数组为[1,2,6,2,2,1,2,1,2,1,1],B网页中获取到的位置数组为[1,2,59,3,1,2,1,3,2,2,2]。
[0034] 2.特征提取:
[0035] 我们将文件中所有标签的美国信息交换标准代码(ASCII)码的和值作为一个特征提取出来,用于表示某一特定的网页和所需爬取的位置部分的关系。因此编写这样一个特征提取模块,用于读取页面文件,批量输出所有标签标准代码和值以及标签数量。
[0036] 根据对页面代码的分析,如果想要提取出有意义的标签,并且忽略脚本语言(js)代码,那么在读取文件的过程中,就需要使用正则表达式进行匹配,满足特定正则表达式条件的再进行下一步处理。
[0037] 例如:$22
[0038] 一个正则表达式,也就是一串有特定意义的字符,必须首先要编译成为一个模式(Pattern)类实例,这个模式对象将会生成一个匹配(Matcher)实例,然后就可以通过使用变异的正则表达式为基础对目标字符串进行匹配工作了。其中,多个匹配实例可以共用一个模式对象。创建3个模式,含义分别为:第一个模式表示以左尖括号“<”或感叹号“!”开头,这个模式在后面的匹配中用于去掉以这两种符号开头的字符串;第二个模式表示以“
该功能需要专业版企业版VIP权限,您可以:
您也可以联系官方QQ: 2157717237 电话: 13264338900