首页> 中国专利> 一种基于网络爬虫的网购平台实现数据可视化的方法

一种基于网络爬虫的网购平台实现数据可视化的方法

摘要

本发明提供的一种基于网络爬虫的网购平台实现数据可视化的方法,该方法包括以下步骤:步骤A:将计算机配置好python环境,并配置pyredis、pymongdb、flask模块、Redis和MongoDB数据库;步骤B:打开代理网站,进入浏览器开发者模式,对代理网站结构进行分析,构建爬取模块,调用多线程;步骤C:使用Flask模块构建代理管理系统,基于BS架构;步骤D:从代理接口获取到代理信息,随机初始化爬虫头浏览器信息;步骤E:使用TKint构建网购平台信息可视化系统客户端模块。可以针对网购平台的数据特性,对其可视化,充分利用和挖掘信息,从不同角度对数据进行解析。

著录项

  • 公开/公告号CN112163138A

    专利类型发明专利

  • 公开/公告日2021-01-01

    原文格式PDF

  • 申请/专利权人 西南大学;

    申请/专利号CN202010970118.2

  • 发明设计人 杨远林;

    申请日2020-09-11

  • 分类号G06F16/951(20190101);G06F16/26(20190101);G06Q30/06(20120101);

  • 代理机构

  • 代理人

  • 地址 400715 重庆市北碚区天生路2号西南大学25教学楼

  • 入库时间 2023-06-19 09:23:00

说明书

技术领域

本公开整体涉及网购平台领域,一种基于网络爬虫的网购平台实现数据可视化的方法。

背景技术

网购平台,如淘宝,京东等等每天都产生大量的交易数据,对其进行实时分析,在管理决策层面和提高用户体验层面上有着作用的作用。然而如何对商品数据进行实时采集和面象用户交互友好的系统模型有待解决,目前大部分的方法采用服务器备份数据的方式进行评估和分析,因为这样对主服务器友好,既转移交易数据时,主服务器不会产生额外的开销,从而不会影响用户对网购平台的体验。

由于网购平台不仅要承受来自消费者访问服务器资源的计算负担,还要承受来自其他数据采集者(网络爬虫)的负担。这将会大大增加网购平台的运维开销。因此网购平台企业往往会采用一些防爬措施,如验证码,判断访问频率,封IP等等手段。这将给对网购平台数据有兴趣或者想进行分析的采集者带来极大的挑战和困难。同时,也可能会给不同部门之间实时传递数据时带来一些负担,因为对于交易或者商家数据,往往是有一定权限控制,工作人员在申请这些权限需要不同部门审批,往往要花费时间等待。而对于一些简单数据,如商家名称,地址等等本该不需要部门审批就可以获取到。而目前一些反爬手段,大部分数据采集者是直接更换不同的代理IP进行处理,没有对其动态的更新和管理。同时,对商品数据的全量爬取往往会导致更多时间和不必要的开销,故需要考虑对其进行增量爬取。因此进而对网购平台的商品数据的实时采集和增量控制的需求需要进一步解决。

由网购平台,用户,商品和商家组成的异质信息网络进行分析,数据的可视化,让决策者更好的感知数据,用户更好的找到数据中的知识和规律,对推动电商的发展和社会的进步有着一定地促进作用。而现存的可视化技术,如统计数据可视化技术seaborn,不能动态的显示数据效果,用户体验较差。

目前,在网络爬虫领域,由于大部分爬取需求都需要用爬虫进行实时爬取,常用的语言有python,java,php。而对于java和php语言虽然在大多数工作下都可以与python进行互换,但是对于后续的数据可视化和管理,python语言将会更加方便。由于大部分企业编程语言采用java,导致后续的数据可视化的展示显得繁琐和沉重,因为需要编写不同的类实例进行控制,php语言也存在着同样的问题。

同时,为了更好的耦合数据可视化平台,也希望尽量少地占用本地资源和安全性,将采用BS与CS混合双架构进行搭建。虽然在python领域已经有了一些成熟的web框架,如Djanggo。但是它往往会占用更多资源和不适合小型web开发,因此这里将采用轻量级的Flask。

目前,数据采集者为了应对网购平台的反爬虫措施,如针对IP访问频率过高情况,网购平台会采取封IP措施,做到让数据采集者不能访问该网站,为了应对这种情况,普通做法是限制访问的频率,如每间隔几秒访问一次,或者采取随机的方式。一些常用技术,如使用Selenium来模拟浏览器访问,但也受到了打开浏览器时间和等待目标搜索条件出现时间的限制。

针对上述情况,设计了结合代理池调度和分配策略的思想。首先从目前流行的代理网站获取到免费的代理,然后放入数据库中,对其进行管理和分配,可以实现一个可复用、低成本、易管理的目标。

目前,对数据的可视化管理,大部分是以面向结构或者面向过程的开发方式进行,虽然直接能对数据进行可视化的效果,但是,当数据发生细微变换时,往往需要对整体代码进行修改,不利于扩展和管理。

同时,对于不同商品信息的模块管理和功能管理,需要构建一个对用户友好,操作简单的平台,而目前常用的数据可视化手段往往是基于历史数据或者对某一个时间数据的快照进行处理和分析,没有与实时爬虫进行结合,做不到对实时数据的可视化,从而有一定的滞后性。在瞬息万变的信息时代,这里将会给网购平台设置一个数据分析局限性,从而可能会导致网购平台其他方面的滞后性。

因此需要解决网购平台数据采集和可视化问题。

发明内容

本发明的目的是解决网购平台数据采集和可视化问题,提供了一种低成本,可靠的,面向用户友好的数据采集和可视化方法,设计的系统为数据采集者和管理者带来了便利。

为了实现上述目的,本发明提供了一种基于网络爬虫的网购平台实现数据可视化的方法,该方法包括以下步骤:

步骤A:将计算机配置好python环境,并配置pyredis、pymongdb、flask模块、Redis和MongoDB数据库;

步骤B:打开代理网站,进入浏览器开发者模式,对代理网站结构进行分析,构建爬取模块,调用多线程;

步骤C:使用Flask模块构建代理管理系统,基于BS架构;

步骤D:从代理接口获取到代理信息,随机初始化爬虫头浏览器信息;

步骤E:使用TKint构建网购平台信息可视化系统客户端模块。

优选地,步骤B包括:设置增量爬取时间为24,数据库最大容量为10000。然后进行爬取并保存到redis数据库中,入库时代理分数默认为10。若代理重复,则停止爬取。当容量大于10000以后,剔除分数较低代理,保留分数为1000的可用代理。检测模块对代理进行检测,若返回404,则减少分数,当代理减少为0时,剔除代理,通过检测则设置为100。

优选地,步骤C包括:先实例化数据库表信息,然后使用路由实现其对应功能,如随机返回代理分数最大代理,代理总数,清空代理池。

优选地,步骤D包括:使爬虫伪装为浏览器,对网购平台进行数据爬取,并存储到MongoDB数据库中,然后进行增量控制和实时爬取。

优选地,步骤E包括:页面一级目录分别为商品大类,二级目录为具体商品,三级目录为该商品的具体功能。

本发明提供的一种基于网络爬虫的网购平台实现数据可视化的方法,该方法包括以下步骤:步骤A:将计算机配置好python环境,并配置pyredis、pymongdb、flask模块、Redis和MongoDB数据库;

步骤B:打开代理网站,进入浏览器开发者模式,对代理网站结构进行分析,构建爬取模块,调用多线程;

步骤C:使用Flask模块构建代理管理系统,基于BS架构;

步骤D:从代理接口获取到代理信息,随机初始化爬虫头浏览器信息;

步骤E:使用TKint构建网购平台信息可视化系统客户端模块。

可以针对网购平台的数据特性,对其可视化,充分利用和挖掘信息,从不同角度对数据进行解析。

附图说明

图1是本发明一种实施例提供的基于网络爬虫的网购平台实现数据可视化的方法流程图;

图2是本发明一种实施例提供的基于网络爬虫的网购平台系统的反爬策略的流程图;

图3是本发明一种实施例提供的基于网络爬虫的网购平台实现数据可视化的系统架构图。

具体实施方式:

本发明的目的是提供一种超声刀,怎么避免超声刀的刀尖掉落。

为了使本领域技术人员更好地理解本发明的技术方案,下面将结合附图和具体实施例对本发明作进一步的详细说明。

请参考图1-图3,本发明改造和扩展了网购平台数据采集和分析,对数据采集和分析的管理提供了新的可行性思路。本方法使用网络爬虫对网购平台数据,代理网站数据进行实时爬取和增量控制,并储存到数据库中。为方便代理的管理,设计代理系统进行管理(基于BS架构)。然后设计数据可视化系统对其集中管理和控制(基于CS架构),对数据从不同角度进行挖掘和探索,让数据得到充分的利用,同时,对实时爬取的数据的管理让数据采集者更加方便和高效,对从数据采集,管理和挖掘提供了一个简单、高效、易扩展、低成本的集成方法。

反爬策略:

为了应对网购平台的封IP措施,需要设计一个给爬虫配置上代理形象,通过代理服务器的手段对目标网站进行访问,从而实现对源IP地址的保护。

为了解决上述问题,本方法对89免费代理网站、快代理网站和66代理网站进行分析和设计,爬取其代理信息,并进行实时爬取和增量控制。然后代理数据储存到Redis数据库中。为了对其检测代理质量,既检测其可用性。访问目标为百度接口,并设定初始分为10,若代理检测后可用,则代理分数变为10,不可用则分数减少,减少到0时,自动从代理系统中删除。若检测可用,这代理分数变为100。

由于代理数据质量的参差不齐,既爬取到的代理数据需要进行质量控制。本方法基于BS架构设计代理管理平台进行管理,其目的对内实现代理信息管理,对外提供一个访问接口,而不是直接对数据库进行访问,这样做的好处是能够方便其他用户也能访问,易于扩展到其他平台或者应用,从而实现可复用的目的。同时,基于flask轻量级的web不仅占用的资源少,而且能够通过不同的浏览器做到跨平台访问。

网购平台数据爬取:

为了获取到网购平台的商品数据,本方法基于Robot协议进行数据爬取。爬取了淘宝、京东等网购平台。先对其网站架构进行了分析,确定了爬取数据的储存结构,从代理接口从获取到代理信息,并封装到爬取头中,实施数据爬取。然后对爬取到的数据存储到非关系型数据库中(DongoDB)。

系统搭建:

由于需要对数据爬取进行管理,同时涉及到代理选取等操作,如果人为地在代理中进行修改,虽然也能达到目的。而对于没有领域知识的管理者或者数据采集者,则会带来一定的困难。因此本方法使用了python自带的TKint模块进行基于BS架构的系统搭建,以实现用户的便捷操作或者管理。

数据可视化:

对数据库中数据进行分析,主要有各地区店铺数量分布统计,各城市销售总量统计,词云图,省分布热力图等。地区店铺数量分布图实现方法说明:由网购平台商品信息指知,商家位置由省名+城市名组成,特殊情况下由其他国家组成,如日本,美国等国家。因此可以用循环的方式来遍历整个商品集合,然后提取出商家地区,中国提取出省名,其他国家为国家名,具体使用python字符串切片方式,然后储存在键值对数据中,即以地区为键,商家数目为值,依次遍历,键相同则数目加1。从商品地区店铺数量分布图中可以得到商家的地区分布图,知道每个地区的店铺数量,方便用户可以解读商品信息。

各城市销售总量统计图实现方法说明,该功能设计目的主要是查看城市的总销量图,基本思想是用用切片方法获取商家所在城市,然后根据所在32城市相同时,销售量相加。然后分别储存在对应列表里面,进而进行统计分析,用于柱状图所显示的城市地区有限,所以这里只显示出商品总销售量排名前十的城市。

词云图实现方法介绍,该功能设计目的为找出销售量排名前100的商家,然后对广告描述信息做词频统计,进一步根据词频的多少来显示字体大小。即频率越高所显示的字体就越大,反之,出现的频率越少,字体越少,甚至不会出现在词云图中。用户可以根据词云图的信息对该产品的进行类型,风格,产品材料等多方面进行分析和参考。销量售价图介绍,该图设计目的是找出该商品销量高的价格区间,方面网购平台商家进行价格指定参考。

省分布热力图实现方法说明,由于柱状图的显示信息有所局限,如不能实时的反应出该省商家具体数量,同时,用户的交互性比较差,达不到用户尽在控制之中的效果。所以使用了热力图。该图实现过程为,根据各省的商家数量和名称,然后根据省名计算机经度和纬度,然后调用图像显示接口映射到中国地图上生成HTML,在利用python调用谷歌浏览器的驱动来显示图片。同时用颜色加以区分不同的数量区间。当然用户也可以通过调节热力图的阈值来调节所关系的省份,值得一提的是,当用户鼠标停留在所关心的省份时,将会显示出省名和具体的商品数量。

城市商品销售数量分布热力图实现方法介绍,由于在城市销售数量图中所显示的城市数量有一定的局限,因为当所显示的数量越多,横轴不能很好的满足显示城市名称,同时,“柱子”越多密度就越明显,因此,需要寻找出一种比较良好的且能与用户更好的交互的图形,在此基础只上,本方法提出了商品销售数量城市分布热力图,用来显示商家所在城市的商品总销售量。从地图上可以看到很多的城市销售量信息,同时,加以颜色区分后也让用户看到销售数量的高低。

在一种实施例中,1.将计算机配置好python3.6环境,并下载pyredis,pymongdb,flask模块,Redis和MongoDB数据库。

2.打开代理网站,进入浏览器开发者模式,对代理网站结构进行分析,构建爬取模块(代理网站为一个队列,对队列里面的网站依次进行后续操作),调用多线程。同时,设置增量爬取时间为24,数据库最大容量为10000。然后进行爬取并保存到redis数据库中,入库时代理分数默认为10。若代理重复,则停止爬取。当容量大于10000以后,剔除分数较低代理,保留分数为1000的可用代理。检测模块对代理进行检测,若返回404,则减少分数(减少分数为公2n次进行递减,n为不通过检测的次数),当代理减少为0时,剔除代理。通过检测则设置为100。

3.使用Flask模块构建代理管理系统,基于BS架构。先实例化数据库表信息,然后使用路由实现其对应功能,如随机返回代理分数最大代理,代理总数,清空代理池。

4.从代理接口获取到代理信息,随机初始化爬虫头浏览器信息,使爬虫伪装为浏览器,对网购平台进行数据爬取,并存储到MongoDB数据库中,然后进行增量控制和实时爬取。

5.使用TKint构建网购平台信息可视化系统客户端模块,页面一级目录分别为商品大类,二级目录为具体商品,三级目录为该商品的具体功能,如词云图,商品数量热量图等等。

在网购平台信息可视化客户端软件算法中,实现其不同对应的功能。如词云图,先对爬取到的商品广告信息进行汇总,使用NLP(自然语言处理)技术进行分词和停顿词处理,统计频率,频率高的文字显示字体越大,反之则越小。从而用户可以对其特定功能进行操作,仅需点击不同功能按钮即可完成。

具有以下有益效果:

1.可以实时爬取代理信息并对其增量控制;

2.对内进行代理信息的质量检测和动态打分,对外提供友好接口;

3.可以实时爬取网购平台商品信息和进行增量控制,让实时爬取和动态分析结合;

4.可以对爬取进行管理和控制,选择不同的配置,系统易操作;

针对网购平台的数据特性,对其可视化,充分利用和挖掘信息,从不同角度对数据进行解析。

本发明实施例所提供的一种基于网络爬虫的网购平台实现数据可视化的方法,其他部分可以参照现有技术,本文不再赘述。

以上对本发明所提供的一种基于网络爬虫的网购平台实现数据可视化的方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号