• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于大數(shù)據(jù)技術(shù)的電商用戶行為分析與可視化

      2024-09-15 00:00:00劉瑩
      電腦知識與技術(shù) 2024年24期

      摘要:隨著互聯(lián)網(wǎng)技術(shù)的進步,消費者逐漸形成在電商平臺購物的習(xí)慣,由此產(chǎn)生了海量的用戶行為數(shù)據(jù)。有效分析和挖掘這些數(shù)據(jù)并發(fā)揮其價值,是當(dāng)前電商平臺的迫切需求。文章詳細(xì)闡述了從數(shù)據(jù)采集與預(yù)處理、數(shù)據(jù)存儲、數(shù)據(jù)分析與可視化等多個方面。數(shù)據(jù)分析結(jié)果可為電商平臺制定產(chǎn)品策略、優(yōu)化用戶體驗和增強市場競爭力提供參考。

      關(guān)鍵詞:電商平臺;用戶行為分析;大數(shù)據(jù)技術(shù);多層次架構(gòu)

      中圖分類號:TP311 文獻標(biāo)識碼:A

      文章編號:1009-3044(2024)24-0070-03

      開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)

      0 引言

      對海量用戶行為數(shù)據(jù)進行分析和挖掘,對優(yōu)化商家的營銷策略和改善客戶服務(wù)至關(guān)重要。用戶行為的特征數(shù)據(jù)包括用戶瀏覽商品次數(shù)、購買記錄、購物車記錄、收藏記錄及發(fā)生購買行為的時間戳等。動態(tài)分析用戶行為特征數(shù)據(jù)并結(jié)合商品特征數(shù)據(jù),可以獲取用戶購物偏好、行為規(guī)律,并準(zhǔn)確定位優(yōu)質(zhì)用戶和高黏性用戶[1]。因此,本文基于大數(shù)據(jù)技術(shù),設(shè)計并實現(xiàn)了一種電商用戶行為數(shù)據(jù)分析與可視化系統(tǒng)。

      1 技術(shù)分析

      電商平臺用戶行為數(shù)據(jù)具有以下特點:大規(guī)模、數(shù)據(jù)源結(jié)構(gòu)多樣、時效性強。本系統(tǒng)采用Spark作為計算引擎,Hadoop分布式文件系統(tǒng)(HDFS)作為存儲,并利用Python爬蟲、Kafka、Storm等技術(shù)進行數(shù)據(jù)采集和預(yù)處理,最終使用Echarts進行可視化呈現(xiàn)。

      1)爬蟲技術(shù)。網(wǎng)絡(luò)爬蟲是一種按照特定規(guī)則自動地抓取互聯(lián)網(wǎng)信息的程序。常用的爬蟲庫包括requests、re、lxml、scrapy等。

      2)HDFS是Hadoop生態(tài)圈中的分布式存儲組件,采用主從結(jié)構(gòu),將數(shù)據(jù)分塊存儲在集群節(jié)點上,實現(xiàn)容錯容災(zāi)[2]。

      3)Kafka是一個事件流處理平臺,作為消息中間件,它將數(shù)據(jù)作為事件流導(dǎo)入和導(dǎo)出,實現(xiàn)與現(xiàn)有系統(tǒng)的集成。

      4)Storm是一個開源的分布式實時計算系統(tǒng),具有低延遲、高可用、分布式、可擴展等特性,并保證數(shù)據(jù)不丟失。

      5)Spark是一種基于內(nèi)存計算的大數(shù)據(jù)計算框架,利用SparkCore、SparkStreaming、SparkSQL等組件處理數(shù)據(jù),通常從HDFS中獲取數(shù)據(jù)源[3]。

      6)Echarts是一款開源JavaScript庫,專注于創(chuàng)建高級數(shù)據(jù)圖表,提供多種可視化圖表類型,包括折線圖、柱狀圖、散點圖、餅圖等[4]。

      2 系統(tǒng)架構(gòu)設(shè)計

      本系統(tǒng)采用四層架構(gòu),如圖1所示。

      第一層外部數(shù)據(jù)源層,目標(biāo)網(wǎng)站為京東商城,爬取的信息包括手機列表、手機屬性和手機評論信息。

      第二層數(shù)據(jù)采集層,利用Python編寫爬蟲程序,自動抓取目標(biāo)網(wǎng)站信息。爬蟲從初始URL開始,獲得鏈接并不斷提取新的URL,直到滿足特定條件時停止。

      第三層實時流處理層,采用Kafka+Storm架構(gòu)實現(xiàn)實時數(shù)據(jù)處理,并將數(shù)據(jù)存儲到HDFS。分布式存儲爬取數(shù)據(jù),兼顧存儲系統(tǒng)的I/O性能和文件系統(tǒng)的可靠性與可用性。

      第四層為數(shù)據(jù)分析與展現(xiàn)層,使用Spark及Echarts進行數(shù)據(jù)分析與可視化結(jié)果展示。

      3系統(tǒng)實現(xiàn)

      3.1數(shù)據(jù)采集模塊的實現(xiàn)

      本系統(tǒng)使用Python爬蟲程序爬取京東平臺手機商城數(shù)據(jù),爬取數(shù)據(jù)包括手機列表信息、詳情信息和評論信息。爬蟲主要流程如下:

      步驟1:打開京東網(wǎng)站,搜索框中輸入“手機”進行搜索,訪問手機列表頁。分析目標(biāo)網(wǎng)頁URL,獲取代表頁數(shù)的可變參數(shù)page。拼接字符串生成目標(biāo)URL。

      url='https://search.jd.com/s_new.php?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&cid2=653&cid3=655&page='+str(2*n)+'&s='+str(48*n-20)+&scrolling=y&log_id='+str(b)

      步驟2:使用requests庫獲取網(wǎng)頁源碼,并利用XPath定位每個商品的li標(biāo)簽。

      r = requests.get(url,headers=head)

      r.encoding = 'utf-8'

      html = etree.HTML(r.text)

      datas = html.xpath('//li[contains(@class,"gl-item")]')

      步驟3:使用XPath提取目標(biāo)數(shù)據(jù),包括商品名稱、商品ID、價格、評論、店鋪名稱、詳情鏈接、是否自營,并存儲到csv文件中。

      with open('JD_Phone_list.csv','a',encoding='utf-8') as f:

      write = csv.writer(f,lineterminator='\n')

      for data in datas:

      p_id = data.xpath('@data-sku')[0]

      p_price = data.xpath('div/div[@class="p-price"]/strong/i/text()')[0]

      p_comment = data.xpath('div/div[5]/strong/a/text()')[0]

      p_name = data.xpath('div/div[@class="p-name p-name-type-2"]/a/em')[0]

      p_shop = data.xpath('div/div[7]/span/a/@title')[0]

      p_detail = data.xpath('div/div[1]/a/@href')[0]

      p_model = data.xpath('div/div[8]/i')[0]

      write.writerow([p_name,p_id, p_price,p_comment,p_shop,p_detail,p_model])

      步驟4:重復(fù)上述步驟獲取手機詳細(xì)信息頁、評論頁數(shù)據(jù),并提取相應(yīng)字段信息,分別存儲在對應(yīng)的CSV文件中。手機詳細(xì)信息頁字段包括品牌、商品名稱、品ID、商品毛重、商品產(chǎn)地、系統(tǒng)、機身厚度、拍照特點、電池容量、屏幕、機身顏色、熱點、運行內(nèi)存、前置攝像頭像素、后置攝像頭像素、機身內(nèi)存、屏幕配置;手機評價頁字段包括序號、商品ID、GUID、評論內(nèi)容、評論時間、參考ID、參考時間、評分、用戶昵稱、顧客會員等級、是否手機、購物使用的平臺。

      3.2數(shù)據(jù)實時處理模塊的實現(xiàn)

      數(shù)據(jù)處理是數(shù)據(jù)分析與可視化的關(guān)鍵環(huán)節(jié),包括數(shù)據(jù)清洗、數(shù)據(jù)去重及轉(zhuǎn)換等操作,為后續(xù)的各種數(shù)據(jù)分析奠定基礎(chǔ)[5]。本系統(tǒng)采用實時流處理過濾掉不符合標(biāo)準(zhǔn)的數(shù)據(jù)并存儲到HDFS中供后續(xù)Spark進行離線分析。處理的主要流程如下:

      步驟1:Python讀取CSV數(shù)據(jù)文件并發(fā)送到kafak的topic中。

      def main(filename,KAFAKA_TOPIC):

      #生產(chǎn)模塊,區(qū)分消息

      producer = Kafka_producer(KAFAKA_HOST, KAFAKA_PORT, KAFAKA_TOPIC, key)

      #采集模塊

      with open(filename,encoding='utf-8') as csvfile:

      csv_reader = csv.reader(csvfile) #讀取csvfile文件

      for row in csv_reader: #保存數(shù)據(jù)到birth_data中

      roducer.sendjsondata("|".join(row))

      步驟2:Storm 實時讀取kafka中topic數(shù)據(jù),進行數(shù)據(jù)處理,并將處理后的數(shù)據(jù)存儲到HDFS。

      //StormToHDFSTopology.java 負(fù)責(zé)設(shè)置集群運行模式、輸出hdfs文件名稱,配置kafka,配置strom的spout源等工作。

      String kafka_zk_rootpath = "/brokers"; //kafka topic根路徑

      String topic="phone_data"; //kafka topic

      String spout_id = "spout"; //storm spout數(shù)據(jù)源名稱自定義

      ZkHosts brokerHosts = new ZkHosts("node1.host:2181", kafka_zk_rootpath); //brokerhost 配置

      String kafka_zk_port = "2181"; //zookeeper 端口號

      //KafkaToFilter.java 負(fù)責(zé)空行數(shù)據(jù)過濾掉

      String line = input.getString(0).trim();

      if(!line.isEmpty()) {

      collector.emit(new Values(line)); //發(fā)送消息,過濾空行數(shù)據(jù)

      }

      collector.ack(input);

      //MessageScheme.java 負(fù)責(zé)重寫消息發(fā)送時的類型

      String msg = new String(Utils.toByteArray(byteBuffer), "UTF-8");

      return new Values(msg);

      步驟3:將程序打成JAR包并運行??稍跒g覽器中訪問Hadoop地址(http://本地IP地址:50070)驗證生成的HDFS文件。

      3.3數(shù)據(jù)分析模塊的實現(xiàn)

      系統(tǒng)使用Spark進行業(yè)務(wù)分析,主要模塊包括Spark Core和Spark SQL。Spark對數(shù)據(jù)文件進行處理和統(tǒng)計分析,并將結(jié)果存儲到MYSQL數(shù)據(jù)庫中。具體的分析流程如下:

      步驟1:手機評論數(shù)據(jù)分析包括以下內(nèi)容:對不同等級會員的銷售傾向分析,買家評分情況分析,以及情感傾向詞頻分析。。

      //手機對不同等級會員的銷售傾向分析。

      Dataset<Row> phoneLevelSaleDf = spark.sql("select product_id,user_level,count(*) ct FROM phoneCommentList group by product_id,user_level ");

      //買家對商家銷售的手機商品的印象分析。

      Dataset<Row> impressDf = spark.sql("seletc product_id,score,count(*) ct FROM phoneCommentList group by product_id,score ");

      //評論數(shù)據(jù)情感傾向詞頻分析。

      Dataset<Row> fenciData=spark.sql("select * from fenciView");

      步驟2:手機列表數(shù)據(jù)分析包括以下內(nèi)容:對不同品牌手機銷售數(shù)量分析,提取排名前十的數(shù)據(jù)。

      //提取評論數(shù)前10的數(shù)據(jù)

      Dataset<Row> namesDF = spark.sql(seletc productName,productId,comment FROM phoneComment order by comment desc limit 10");

      步驟3:經(jīng)上述步驟,得到多個數(shù)據(jù)表,包括:phoneCommentList(手機評論表)、phoneLevelSale(手機對不同等級的會員銷售量表)、impression(買家對購買手機的印象表)、fenci(高頻詞匯統(tǒng)計表)、phoneDetai(手機屬性表)、phoneList(手機銷售前十排名表),存儲到MySQL數(shù)據(jù)庫中,如圖2所示。

      3.4數(shù)據(jù)可視化模塊的實現(xiàn)

      系統(tǒng)最后使用Echarts實現(xiàn)了電商用戶行為數(shù)據(jù)的可視化呈現(xiàn)。通過圖表的展示,更方便直觀的了解用戶行為數(shù)據(jù)的相關(guān)信息,為電商平臺提供更好的決策支持。

      1)不同等級會員的手機銷售量如圖3所示。

      2)買家對手機商品的評分情況如圖4所示。其中橫坐標(biāo)表示為:買家對手機的評分, 縱坐標(biāo)表示為:評分的用戶數(shù)量(單位:千)。

      3)不同品牌手機銷售排名如圖5所示(單位:千)。

      4)根據(jù)用戶對手機的評價信息,使用分詞功能提取關(guān)鍵詞,用詞云圖展示如圖6所示:

      4 結(jié)論

      本文研究了基于大數(shù)據(jù)技術(shù)的電商用戶行為分析與可視化系統(tǒng),詳細(xì)闡述了從數(shù)據(jù)獲取到數(shù)據(jù)分析和可視化展示整個流程。根據(jù)分析結(jié)果,手機銷量占比排名前三的會員類型為:企業(yè)會員、金牌會員和鉆石會員,占到整個銷售量75%之多;消費者對手機產(chǎn)品的偏好主要集中在系統(tǒng)、速度、價格和屏幕及物流服務(wù)等方面。電商平臺應(yīng)據(jù)此提升產(chǎn)品競爭力并優(yōu)化服務(wù)環(huán)節(jié),從而改善客戶體驗、增強用戶忠誠度,進而達到提高銷售量的目的。

      參考文獻:

      [1] 郝浩宇,任杰成.電商平臺用戶行為分析系統(tǒng)研究[J].信息與電腦,2021,33(21):80-82.

      [2] 徐怡薇.電商App用戶行為分析系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2023.

      [3] 顧煒倫,郝東來,陳立.基于Spark離線和實時的電商用戶行為分析系統(tǒng)[J].電腦編程技巧與維護,2023(4):132-134.

      [4] 付騰達,李衛(wèi)勇,王士信,等.基于Python爬蟲技術(shù)的招聘信息數(shù)據(jù)可視化分析[J].電腦知識與技術(shù),2024,20(7):77-82.

      [5] 高寒.基于電商平臺的大數(shù)據(jù)挖掘系統(tǒng)的設(shè)計研究[J].信息記錄材料,2023,24(11):204-206,209.

      【通聯(lián)編輯:光文玲】

      汝州市| 资兴市| 苍山县| 张北县| 颍上县| 江都市| 襄樊市| 勐海县| 开江县| 报价| 镇沅| 合江县| 酒泉市| 山西省| 乌兰浩特市| 西乡县| 金秀| 海兴县| 天津市| 南投市| 临城县| 怀来县| 会同县| 定陶县| 临海市| 张北县| 鹤峰县| 榆树市| 察哈| 平武县| 南城县| 琼中| 广昌县| 苍溪县| 图木舒克市| 定南县| 西藏| 漳州市| 陆良县| 四平市| 泗阳县|