方芳
摘要:該文基于Scrapy框架對(duì)京東網(wǎng)站上筆記本電腦的評(píng)論數(shù)據(jù)進(jìn)行了爬取,共爬取了32種品牌,選取其中的“聯(lián)想(Leno-vo)拯救者Y7000P”筆記本電腦評(píng)論數(shù)據(jù)進(jìn)行分析,通過(guò)pandas提供的模糊匹配方法提取數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行去重、分詞和停用詞過(guò)濾等處理,使用wordcloud庫(kù)繪制詞云圖,呈現(xiàn)出的情感數(shù)據(jù)為商家和用戶提供進(jìn)一步的決策。
關(guān)鍵詞:Scrapy框架;Python;數(shù)據(jù)預(yù)處理;數(shù)據(jù)可視化
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)06-0007-03
1背景
1999年底,隨著互聯(lián)網(wǎng)高潮來(lái)臨。中國(guó)網(wǎng)絡(luò)購(gòu)物的用戶規(guī)模不斷上升。2010年中國(guó)網(wǎng)絡(luò)購(gòu)物市場(chǎng)延續(xù)用戶規(guī)模、交易規(guī)模的雙增長(zhǎng)態(tài)勢(shì)。智能手機(jī)的普及更使得網(wǎng)上購(gòu)物越來(lái)越流行,足不出戶就能買到性價(jià)比高的商品,享受著帶來(lái)的各項(xiàng)便利和服務(wù)。
現(xiàn)在人們對(duì)于網(wǎng)上購(gòu)物的需求變得越來(lái)越高,這讓京東,淘寶,蘇寧易購(gòu),當(dāng)當(dāng)網(wǎng)等電商平臺(tái)得到了很大的發(fā)展機(jī)遇。從近期的數(shù)據(jù)來(lái)看,天貓2017年“雙11”這一天的最終交易額就達(dá)到1682億,創(chuàng)下歷史新高。京東全球好物節(jié)從同年的11月1日到11月11日24時(shí)累計(jì)下單金額達(dá)1271億元。
巨大的交易額將產(chǎn)生大量的用戶評(píng)論數(shù)據(jù),多數(shù)消費(fèi)者熱衷于在網(wǎng)站上留下對(duì)產(chǎn)品的真實(shí)看法和體驗(yàn),很多消費(fèi)者也習(xí)慣于在購(gòu)買產(chǎn)品之前先瀏覽下用戶的評(píng)論信息,從而幫助自己選擇合適的產(chǎn)品。而各大電商平臺(tái)也面臨著激烈的競(jìng)爭(zhēng)的同時(shí),除了提高商品質(zhì)量,壓低商品價(jià)格外,也需要得到用戶的反饋,而反饋信息可以從商品的評(píng)論區(qū)的文本數(shù)據(jù)信息得到。
本文將京東電商平臺(tái)上的筆記本電腦評(píng)論信息作為研究對(duì)象進(jìn)行相關(guān)文本分析研究,從中得到有用的情感數(shù)據(jù),這些數(shù)據(jù)反映了用戶對(duì)產(chǎn)品的整體意見和態(tài)度,具有很高應(yīng)用價(jià)值。這些情感數(shù)據(jù)的獲取,有利于電商改進(jìn)營(yíng)銷策略和提升服務(wù)質(zhì)量,促進(jìn)產(chǎn)品銷量,也有利于對(duì)應(yīng)商品的生產(chǎn)廠家產(chǎn)品質(zhì)量的提升,也有利于消費(fèi)者了解商品的好壞,是否值得購(gòu)買。
2相關(guān)技術(shù)介紹
2.1python
如今,Python已經(jīng)成為一種再主流不過(guò)的編程語(yǔ)言了。它天生麗質(zhì),易于讀寫,非常實(shí)用,從而贏得廣泛的群眾基礎(chǔ),被譽(yù)為“宇宙最好的編程語(yǔ)言”。Python是一種跨平臺(tái)、開源、免費(fèi)的解釋型高級(jí)動(dòng)態(tài)編程語(yǔ)言。Python擁有大量的庫(kù),且易于學(xué)習(xí),可以用來(lái)高效的開發(fā)各種應(yīng)用程序。Python語(yǔ)言目前廣泛應(yīng)用于網(wǎng)絡(luò)爬蟲、計(jì)算與數(shù)據(jù)分析、人工智能、自動(dòng)化運(yùn)維、云計(jì)算等領(lǐng)域。
2.2Scrapy框架
Scrapy是用純Python實(shí)現(xiàn)的一個(gè)開源網(wǎng)絡(luò)爬蟲框架,是為了高效地爬取網(wǎng)站數(shù)據(jù)、提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。它是一個(gè)“5+2”結(jié)構(gòu),5個(gè)模塊是指engine,scheduler,item pipe-lines,spiders和downloader。2個(gè)模塊是engine和spiders以及en_gine和downloader之間的兩個(gè)中間件模塊。
Scrapy的優(yōu)點(diǎn)有以下幾點(diǎn):
1)開發(fā)者在Scrapy框架中只需要將爬取規(guī)則添加到代碼中就會(huì)自動(dòng)開始數(shù)據(jù)的采集。
2)開發(fā)者使用Scrapy框架開發(fā)并不需要接觸核心代碼。
3)Scrapy是一種跨平臺(tái)的框架。
3爬蟲模塊
3.1抓取模塊
3.1.1新建Scrapy項(xiàng)目
首先需要在配置Pvthon3.7的pycharm中安裝Scrapy庫(kù)。然后在pycharm終端進(jìn)入建立Scrapy項(xiàng)目的目錄,輸入命令scrapy starpmjiect項(xiàng)目名稱,命令執(zhí)行后生成項(xiàng)目的完成目錄。
3.1.2明確爬取目標(biāo)
本次爬蟲目標(biāo)是獲取京東網(wǎng)站上筆記本電腦的評(píng)論信息,利用Chrome瀏覽器對(duì)目標(biāo)網(wǎng)站的頁(yè)面源碼結(jié)構(gòu)進(jìn)行分析。首先打開京東網(wǎng)站首頁(yè),在搜索框中輸入筆記本,點(diǎn)擊搜索,進(jìn)入筆記本搜索一級(jí)頁(yè)面,根據(jù)網(wǎng)頁(yè)源碼信息得到每個(gè)店鋪的URL地址,根據(jù)URL地址進(jìn)入商品詳情頁(yè)面(又稱為二級(jí)頁(yè)面),從頁(yè)面中獲取筆記本電腦品牌和相關(guān)評(píng)論信息。整個(gè)爬蟲的流程是,構(gòu)造筆記本搜索頁(yè)面初始url→采集店鋪地址url→構(gòu)造商品詳情頁(yè)面URL→抓取評(píng)論信息一通過(guò)循環(huán)模擬翻頁(yè)獲取下一頁(yè)的url。
3.1.3制作Spiders爬取網(wǎng)頁(yè)
制作spiders也就是負(fù)責(zé)爬取和提取數(shù)據(jù)的爬蟲。首先在工程中目錄下在終端中輸入命令創(chuàng)建一個(gè)爬蟲,在爬蟲中編寫代碼。具體定義的方法分別是start_requestsO、ProducturlO、Pro-ducrCommentO、ParseO。
3.2存儲(chǔ)模塊
數(shù)據(jù)爬取后通過(guò)Pipeline.Py將爬取到的數(shù)據(jù)用戶ID,產(chǎn)品,用戶評(píng)論三個(gè)字段存儲(chǔ)到CSV文件中,爬取結(jié)果的部分?jǐn)?shù)據(jù)如下圖1所示。
4文本預(yù)處理
4.1數(shù)據(jù)篩選
通過(guò)對(duì)“產(chǎn)品”這列的統(tǒng)計(jì),共爬取了32種品牌電腦。本文選取了32種品牌中的“聯(lián)想(Lenovo)拯救者Y7000P”電腦進(jìn)行分析,通過(guò)pandas提供的模糊匹配方法提取數(shù)據(jù),另外使用map方法將產(chǎn)品劃分成“品牌”和“型號(hào)”兩列,并且去掉了“產(chǎn)品”列,同時(shí)調(diào)整了列的排放順序,依次為用戶ID,品牌,型號(hào),用戶評(píng)價(jià)四列,最后另存為jdnew.csv,CSV如圖2所示。
具體代碼如下所示:
4.2去重
利用pandas的duplicated0方法檢查重復(fù)的數(shù)據(jù),經(jīng)檢測(cè),發(fā)現(xiàn)很多行中出現(xiàn)True標(biāo)記,例如行索引74925,74926,74927,74928,74929對(duì)應(yīng)的值都是True,表明這些行的數(shù)據(jù)都是重復(fù)的,需要進(jìn)行處理。我們使用drop_duplicatesO函數(shù)完成去重。
4.3分詞
采用python中的中文分詞包“iieba”(結(jié)巴分詞),對(duì)CSV文檔中的用戶評(píng)論數(shù)據(jù)進(jìn)行中文分詞處理?!敖Y(jié)巴分詞”提供分詞、詞性標(biāo)注、未登錄詞識(shí)別等功能。經(jīng)過(guò)相關(guān)測(cè)試,結(jié)巴分詞的精度高達(dá)97%以上。它支持三種分詞模式:1)全模式:把文中所有可能的詞語(yǔ)都掃描出來(lái),存在冗余;2)精確模式:把文本精準(zhǔn)的分開,不存在冗余;3)搜索引擎模式:在精準(zhǔn)模式的基礎(chǔ)上,再次對(duì)長(zhǎng)詞進(jìn)行切分。此處通過(guò)lcutO函數(shù)進(jìn)行分詞,共需要提供兩個(gè)參數(shù),第一個(gè)參數(shù)表示需要分詞的字符串,第二個(gè)參數(shù)用來(lái)控制是否采用全模式分詞,這里采用精確模式,代碼如下所示。
words=jieba.1cut(str(comment.values),cut_all=False)
4.4過(guò)濾停用詞
停用詞是指在信息搜索中,為了提高搜索效率和節(jié)約存儲(chǔ)空間,過(guò)濾掉某些沒有具體意義的字和詞,這些字或詞被稱為停用詞。對(duì)于中文的停用詞,常用的停用詞表有哈工大停用詞表、四川大學(xué)機(jī)器學(xué)習(xí)智能實(shí)驗(yàn)室停用詞庫(kù)、百度停用詞表。本文采用的是哈工大停用詞表過(guò)濾。
5數(shù)據(jù)可視化
使用matplotlib庫(kù)完成數(shù)據(jù)可視化,同時(shí)結(jié)合了wordcloud庫(kù)繪制詞云圖。wordcloud模塊會(huì)將文本中出現(xiàn)頻率比較高的詞語(yǔ)進(jìn)行放大顯示,而出現(xiàn)頻率比較低縮小顯示。本文在繪制詞云圖時(shí)使用了背景圖片,背景圖片是用PIL的庫(kù)里的imread(1函數(shù)來(lái)加載的。
從圖中可以看出,用戶評(píng)論比較多的是外形外觀,包裝保護(hù),運(yùn)行速度,畫面品質(zhì)等等。圖中“不錯(cuò)”,“開機(jī)流暢”,“喜歡”這幾個(gè)字證實(shí)用戶對(duì)此款電腦整體是比較滿意的,沒有出現(xiàn)負(fù)面評(píng)論的詞。
6結(jié)束語(yǔ)
本文使用Scrapy框架爬取了京東網(wǎng)站上的筆記本電腦評(píng)論數(shù)據(jù),使用Pandas庫(kù)提取了“聯(lián)想(Lenovo)拯救者Y7000P”筆記本電腦的評(píng)論數(shù)據(jù),通過(guò)Pyilion語(yǔ)言完成了去重,分詞,停用詞等數(shù)據(jù)預(yù)處理工作,最后利用matplotlib和wordcloud完成了詞云圖的展示,從圖可以看到用戶對(duì)此款電腦整體是比較滿意。