方芳


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