基于Scrapy的电子商务数据分析系统设计

2022-03-31 06:30何芳
电子技术与软件工程 2022年24期
关键词:爬虫数据库内容

何芳

(德州职业技术学院 山东省德州市 253000)

新时期背景下,电子商务领域不断取得新的发展成果,传统商业模式出现重大变革,随着物联网技术、云计算技术水平的不断提升,市场信息量呈现出十分迅猛的发展势头,属于电商的黄金发展时代已经悄然来临。面对这种发展情况,更加高效的从海量信息中攫取出有价值信息,以此为基础,能够产生更为可观的企业效益,大数据技术由此成为当代电商企业高度重视的领域,市场竞争变得更为剧烈[1]。大数据技术属于现代化智能领域内的关键组成部分,处于大数据背景下,随着人们现有生活和工作模式的变化,智能化服务在人们生活中变得更加常见,并成为现代化服务方式的主流发展趋势,如:智能购物和智能导航等方面,电子信息技术在这些角度可以为人们带来更好的自动化与智能化服务。在大数据时代与云计算深度不断发展的过程中,通过对关键数据信息的进一步挖掘,不仅可以更加有效的节约出人力资源,同时还能够将广大用户的切实需求与信息技术进行紧密结合,充分运用数据获取、数据分析、数据挖掘、云计算等方式,将电子信息技术整理出的信息资源加以优化与整合,可准确找出具备较高价值的数据,应用效果极佳。

本文将大数据技术作为核心研究对象,对我国某购物网站进行数据爬取和专业分析,有针对性的设计一款新型数据分析系统,该系统主要框架为:Scrapy,系统以Python3.7作为主要编程语言,经过编辑后,可以在Scrapy 框架内建设期全新的Web 爬虫,通过这种方式爬取目标购物网站内的相关数据内容,并借助MongoDB 工具对有价值数据进行系统存储,然后,技术人员可凭借Python 提供的Numpy 专业工具包和Pandas 专业工具包,对爬取到的关键数据进行再一次的清洗,保证筛选后的数据具备研究价值,此后在对数据进行模式转换,提升数据资料的直观性,此后,再对关键的数据内容进行分类设定和计算分析,以此为基础,再由专业技术人员使用Matplotib 工具对系统的最终分析结果知行统一的可视化处理[2]。在这样的情况下,分析人员可以对得到的所有商品相关信息和营销数据有一个更加清晰的了解,并保证自身的最终解析结果具有准确性、代表性和针对性,进而为商家提供更为充分的发展数据支撑,并未购物网站的后续发展奠定良好基础,尽可能展现出网站具有的个性化特点,吸引更多新用户的同时,增加自身固有用户的使用黏性。

1 信息爬取的关键技术论述

1.1 现有Web爬虫技术解析

目前,现有网络信息爬取技术,又被称之为爬虫技术,该技术能够以网页链接为基础,通过网址URL 向系统服务器平台发出数据请求,通过这种方式获取目标的关键数据和信息资料[3]。

常规条件下,现有Web 爬虫在正式试用过程中,与普通互联网功能性程序具有较高相似性,区别在于爬虫具备自动访问能力,同时还可以对当前Web 页面中的功能进行有效检索,并从海量数据中准确找出有价值信息,并将爬取到的相应内容和数据转存至提前设定好的数据库内,操作便捷且应用效果良好[4]。

现有网络爬虫技术,在实际使用过程中的基本操作流程详情共包括下述几方面内容:

(1)首先,选择更具针对性的系统种子,即URL 数据。

(2)其次,将最终选择的种子,即URL 数据,全部设定为待抓取状态,形成新的URL 数据队列,等待抓取即可。

(3)再次,在处于待抓取状态的所有URL 数据队列中进行抓取作用,此间需要配合DNS 解析,在抓取到的内容经过数据解析处理后,得到的数据资料即为最终的网络Ip信息及其对应主机信息。

(4)再次,执行下载任务命令,将所有URL 数据中显示的网页数据内容和文字内容下载并转存储至对应的网页数据库内。在此期间,还可以将URL 放置在已经抓取成功的URL 队列内。

(5)再次,对已经抓取到的URL 队列进行分析,并对其中的URL 进行处理,将最终得到全部资料,均需要再次转存入到准备好的数据库内,供随时调用。

(6)最后,针所有的URL 关联数据进行统一处理,然后再将分析处理后的URL 数据移动至第(2)环节的待抓取环节,此后,开始进入到全新的数据抓取循环,直至数据的所有价值被完全挖掘[5]。

1.2 Scrapy

对于当今市面上比较常见的Scrapy 框架而言,可以将其视为一种以Python 为基础技术,进一步升级而成的全新网络爬虫程序,该程序在速度方面和开源方面具有突出优势,不仅可以适配大部分当下的主流网络平台,同时还可以通过关键技术对,目标信息和数据进行精准的读取,仅需要设定Scrapy 基础框架,便可以顺利完成后续开发模块的任务制定,爬虫技术的应用效率更高[6]。

本文设计的爬虫任务指令执行流程详情如表1 内容所示。

表1:工程目录下文件和文件夹作用

(1)Spiders 工具能够将待爬取的关键数据和信息,转存至数据库内,随时可取用。

(2)抓取到的数据,在使用Scheduler 工具进行处理后,还需要再次经过Scrapy Engine 或者Downloader Middleware的专业处理,并将最终得到的内容转存至数据库系统内。

(3)借助Downloader,可以向Internet 平台发送请求,然后使用Response 将关键数据内容和资料进行分析处理,并将最终结果储存至系统的Spiders 内。

(4)以源自MySQL、SQL Server、Oracle 等传统类型的关系型数据库内容为例,其数据需要使用Sqoop 进行导入,此后主要由Scrapy Engine 将其转交至数据库系统,并通过Pipeline 工具包实现保存目标。

(5)抓取关键数据期间,需要不断重复上述几个流程的具体操作步骤,直至系统内不再产生新URL 数据请求,或者现有结果已经可以满足分析所需,方可停止循环[7]。

1.3 数据处理与可视化分析

数据处理模块需要对数据标准化进行集中处理,在处理数据的过程中还需要及时除去重复数据、缺失数据和其他类型的不可用数据。在此之后,方可对缺失数据执行再次导入处理,可选择手工录入方式、逻辑自动补全方式完成相应处理任务。对于部分错误数据的处理,如:异常数据处理,可以借助区间限定方式,去除或以历史数据为基础,得出数据近似值;对于部分重复数据内容,如:内容全部重复的情况,则可去除重复内容,也可按照时间顺序或不同阶段的业务逻辑进行选择性去除。对于部分不可用数据,还可以使用规则适配处理方式、关键字匹配处理方式、枚举转化处理方式完成必要的修复任务或清除任务。数据处理技术在上述几项关键步骤中的应用效果良好,处理速度更快[8]。

对于数据可视化而言,可以借助Matplotib 图形库实现可视化功能,因为该图形库是以Python 语言为核心,具备编程语言简洁优美的主要特点,以此为前提,可以成功绘制出全新的系统直方图、系统条形图、系统功率谱以及系统散点图核心数据资料图。此外,Matplotlib 可提供关于API 的服务功能,确保图表内容可以完整的嵌入到准备好的画布中,保证制图质量可以达到预期水平[9]。

1.4 系统数据库分析

本次属于非关联数据库,在系统语言查询方面具有突出优势,能够有效存储更多的复杂数据内容,并且对数据类型没有过多限制[10]。在此期间,在数据存取效率方面也具有显著优势。

2 数据系统的整体设计

2.1 数据分析系统框架结构分析

在本次系统设计工作中,主要包括三方面内容,依次为:

(1)商品总体营销数据。

(2)网站用户消费数据。

(3)网站商品列表页详情。

在面对词信息云、用户评论词频都能够做到准确抓取。本次系统设计的总体架构详情如图1 内容所示。

2.2 爬虫模块分析

2.2.1 项目初始化分析

在选取某购物网站作为最终的爬取目标后,借助scrapy startprojectXX_ Spider 生成新的爬虫项目,此时的项目根目录显示为XX_Spider。同时,在根目录下再次创建如表1 内容所示的各种文件以及文件夹即可。

2.2.2 数据库分析

这一层主要由HDFS、HBase、Hive 组成。其中,数据底层存储需要使用Hdfs 分布式文件系统[6]。对于Hdfs 而言,需要按照根据数据实际大小,选择NameNode 作为指定datanode 服务器和block(64M),此间产生的所有数据都需要依次存入到对应的block 系统中。在上述流程中,因为系统中会存在有大量小文件(体量低于64M 的文件)则会导致Hadoop 集群出现运行崩溃问题,所以,需要将各种不同类型的小文件成功合并成一个单独的大文件再进行存储,此时Hadoop 自带CombineFileInput-Format 功能可以有效完成文件合并任务,对应的数据仓储系统需要利用Hive 和Hbase共同作用实现,数据分析结果的针对性也更强。

2.2.3 数据爬取策略分析

对于XX 购物网站而言,其商品评论数量信息量庞大,再加上商品数量基数大的特点,导致全部爬取的难度较高,分析任务量过大,所以,仅爬取部分数据,证明爬取基数具备应用价值即可。

本次爬取任务,在设定最大页数后,可凭借sttings.py工具实现爬取作业,并在每次单独的爬取任务完成后,需要对此页面进行标识:page+1[13]。在此期间,因为网站本身数据库(MySQL,Oracle 等)中储存的数据,需要在与主机进行关联后,将其存入到对应的Hive 系统中,对于部分体量过于庞大的非结化数据内容,则需要使用关联存入的方式存到HBase 系统中。以HBase 为例,此时关联操作的目的在于,将数据从非结构化类型的文本进行转化,并从中提取出关键的结构化数据信息,并明确字段,所以,在后续爬取环节,需要爬虫系统向网站服务器平台发送请求,在得到平台的反馈信息后,才能够对数据结果进行爬取,最后再执行提取数据指令,即可实现对关键数据资料的爬取和储存目标。

2.2.4 常规系统反爬虫技术处理机制论述

本次系统爬虫编辑代码详情如下所示:

在完成上述代码的编写后,可以在中间函数集中完成取值,采用随机取值方式即可,对于系统内任意处于单独状态的列表项而言,均具有代表性,此后再次使用request 工具,即可实现设置操作,最后,技术人员通过sttings.py 工具可设置新的专用任务指令,确保该中间件的使用安全性,即通过爬虫模拟浏览器可以准确攫取到目标信息。

在访问商品详情信息时,系统服务器自身具备检测功能,可以明确Referrer 工具端发出的任务指令请求头,并且此时的请求头实际数值即为此前详情页执行的跳转操作信息,也就是此前页面内的所有数据资料,在这样的情况下,请求详情指令在发送至URL 模块以后,还需要再次在准备好的Scrapy 工具内使用新的Request 技术,提升页面设置效果,保证新的Referer 操作质量,并作为当前阶段的URL,通过这种方式,可以获取更加准确的商品详情页信息和关键数据内容[14]。

在上述操作流程中,为避免爬取至某商品页面后,发生指令动作意外中止的问题,需在事前对所有商id 进行保存,然后在页面信息爬取动作完成后,在将其调用至相对应的URL 内,再次将商品id 信息作为请求质量,并向平台发出再一次的申请,此后,继续加载此前未爬取的剩余数据即可,直至全部数据页面均被翻页处理后,即可再次执行下一页的爬取任务并复杂关键数据内容,通过这样的爬取方式设定,可以保证关键数据的抓取和分析有效性。此系统模块需要使用Spark 计算框架完成对关键数据的分析任务。其中,在Spark 读取Hdfs,Hive 或HBase 中的数据内容时,可以创建与之相对应的RDD。此后,DAG 调度器则可以正式创建执行计划方案,使用Task 调度器完成任务分配工作,并实现对Worker 的控制,正式开始执行并行化计算程序。借助JDBC API 能够将Spark 中包含的RDD 数据集提前暴露出去,然后再借助传统形式的BI 方式和可视化界面,完成对RR 数据集的最终执行情况查询,即SQL 查询。对于部分实时数据流而言,在处理过程中可以使用SparkStreaming功能,并且此时的系统还可以充分借助SparkMILb 库完成数据分类任务、聚类关联规则处理任务、回归算法任务,对大数据进行更加深入的挖掘分析。爬虫运行流程见图2。

图2:爬虫执行流程示意图

2.3 爬取数据处理分析与数据可视化分析

2.3.1 文件初始化设定

首先,创建新的目录文件夹,然后在对应目录中再次创建一个新的系统文件夹,用于储存后续爬取数据资料。

2.3.2 操作系统界面设计

系统界面窗口的主要功能选项包括:商品数据信息资料、网站用户数据信息、商品列表信息,共计三部分核心内容,在这样的情况下,所有数据结构统一设定成字典格式,并将上述三方面内容转存至对应的字典模块内即可,并使数据信息处于重叠状态,仅最上面的数据内容直接可见。

2.3.3 网站商品整体数据分析

(1)厂商占比分析。在读取数据库中抓取道德Products数据集合内容后,需要使用Pandas 将其再次进行转换处理,从而形成全新的系统DataFrame 工具包,使用Selenium 工具,可以依次完成录制任务和对象识别任务,其中,配合IEDevToolBar 一起使用,还能够可以在待检测系统内准确识别关联信息,基于此,自动检测任务会变得更加简便,同时,所有被检测对象的基本信息都可以在数据库中得以储存,在这样的情况下,能够大幅度降低WEB 实际运行期间的大部分任务量。自检系统使用的脚本语言在调用状态下,可以自动完成编译任务,同时还可以对脚本做出解释,主要特征为:简单易学、操作难度低等。使用该工具后,系统程序员能够在更短时间内完成编码任务,进一步压缩时间成本。此外,解释器本身还能够对脚本语言进行编辑,进而保证处理任务可以同步完成,自动检测效率更高。

(2)以常规自动检测为基础展开研究,需对自动系统设计的所有内容和检测需求进行概括和整理,此后,系统中的GUI 属性库以及GUI 属性库内的数据文件,全部都需要运行过程中,以脚本为基础,确保所有关键数据的准确性,同时还需要保证读取结果的准确性,全方面提升自动技术的应用效果;系统内测试数据池分析,系统内专设运行模板,同时,保证脚本能够识别该数据库中的相关内容;系统需要进行参数化设计,可以将数据池内储存的数据作为基础,进一步分离测试数据库模块和脚本模块,保证分析结果具有代表性和独立性;系统方法库,自动化技术人员,在工作过程中,需将代码内容进行通用设定,并将其放置在需要识别的对象模块中,通过这种方式,大幅度提升代码识别效果,同时也可以减少系统在开发环节需要完成的处理任务量,减轻负担;系统运行结果的预期分析和判定,对于此系统模块而言,能够有效存放大量的系统测试内容,同时还可以准确展示出测试结果,在这样的情况下,系统测试内容独立,能够大幅度降低开发环节的工作负担;系统测试日志,此模块的核心作用,主要表现在数据输出方面,自动测试系统在完成任务指令的过程中,系统日志会被格式化,通过这种方式可以为最终的自动化结果提供安全保障;检查器模块,在系统内设置专门的检查点,使用系统判断功能,即可检测出系统自动化运行的实际效果,并给出针对性结论。

(3)商品评价数量信息具有实时变化的特点,会随着价格变化而出现波动变动。因此,需要分别统计出不同价位区间的信息,如:0-1000 元范围内、1000-2000 元范围内、2000-3000 元范围内、3000-5000 元范围内、5000-6000 元价格区间以及6000 以上区间的用户评论数,抓取并储存完成后,可以执行返回数据指令,最后在借助Matplotlib 可在Tkinter 中继续完成后续绘制任务即可[15]。

2.3.4 网站用户数据综合分析

在成功读取消费者评论信息后,借助Matplotib 可在Tkinter 中继续完成后续绘制任务即可。

2.3.5 网站商品列表分析

(1)消费事件发生后,系统要准确展现出对此商品的详细信息,保证数据可视化效果可以达到预期水平。

(2)消费者的好、中、差评等关键内容占比分析。可以从数据库中准确读取出目标数据并返回,然后借助Matplotib 可在Tkinter 中继续完成后续绘制任务。

(3)商品评论数量会随着时间的推移而改变。所以,在Pandas 读取商品数据后,需要立即转换为新的datetime抓取对象,然后再将抓取到的内容转化成新的数据包模式,并按照时间差异,完成后续分组排序任务即可。

(4)消费者评论信息需要成功显示出来,并保证数据处理效果。

3 系统功能测试分析与市场调研分析

3.1 网络爬虫测试

首先,设定关键词,在爬虫完成运行后,打开可视化工具,并将其与系统数据库进行连接,并找出爬虫保存的所有数据内容即可。

3.2 网站用户的消费情况分析

3.2.1 网站内商品销售数据调研

购物网站内的信息接收对象记录、通知登记指令、通知类型识别、标题识别、内容记录以及附件传输等关键内容,均需要详实记录。同时,未查看通知可显示当前已被用户接收到但为进行查阅的情况,该功能设置是为了一些需要用户反馈的重要通知而用,用户必须反馈意见后才能结束该程序。通知查询可方便查看当前通知的发布者和接收者,便于发布者快速了解通知接收和反馈情况,并保持历史记录。基于此,在爬虫任务指令全部完成后,即可判定该次抓取任务结束,此时收集到的数据内容已经转存至系统数据库中,可对期内的必要数据资料和信息进行分析,因此,需再次要设置一个专门而定待连接数据库,当程序正式启动并成功显示出对应商品信息后立即对后续内容加以可视化处理,为最终的数据分析结果提供准确性保障作用。

3.2.2 购物网站用户消费数据分析

在本次数据爬取任务中,共收集9800 条用户评论信息,其中,占比最高的评论是有关该购物网站中的PLUS 会员评论内容。主要原因为:PLUS 会员是本次研究对象,即XX购物网站自身提供的核心会员服务体系,因此,对于此类用户而言,会更加关注自身消费体验,同时在网站的购物频率明显更高,并且也更加愿意发表个人的购物感受和产品评论。3.2.3 某一商品的销售数据分析

操控系统,切换平台商品列表信息功能页面,显示买家评论信息和消费者评论的发展,属于对单一商品评论数据分析的核心内容。

以我国某国产手机产品在该网站的销售情况为例进行分析,操作鼠标双击手机型号,即可显示对应的产品销售记录,当窗口弹出此商品对应的数据可视化图表后进行即可。经分析可了解到,消费者评论大多处于2019年7-11月范围内,此情况可证明该商品在正式发布后一段时间内,在该网站采取的打折促销手段,使产品的实际销量发生一定程度的提升。

商品词云,即用户体验,可以真实的展现出用户的个人体验,经过分析可知,词云内的部分关键词:如:流畅度、保值率等信息均会对网站用户的最终消费体验造成一定程度的影响。

4 结束语

本文将爬虫技术作为研究活动的核心内容,针对某购物网站单一产品实际销售数据进行分析,借助Python 工具,研发出一种全新的网络爬虫程序,可以将爬取到的有价值数据转存至系统数据库,然后再对关键数据内容进行可视化呈现和分析,给出最终结果,通过这种方式为管理者发展策略的制定,提供更为可靠的数据支撑作用。

猜你喜欢
爬虫数据库内容
利用网络爬虫技术验证房地产灰犀牛之说
内容回顾温故知新
基于Python的网络爬虫和反爬虫技术研究
利用爬虫技术的Geo-Gnutel la VANET流量采集
大数据环境下基于python的网络爬虫技术
主要内容