国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于爬蟲技術(shù)的網(wǎng)購(gòu)信息獲取與營(yíng)銷策略分析

2018-09-07 08:32胡曉青曹宇
中國(guó)儲(chǔ)運(yùn) 2018年9期
關(guān)鍵詞:爬蟲網(wǎng)頁(yè)京東

文/胡曉青 曹宇

1.引言

孤立的數(shù)據(jù),盡管是海量數(shù)據(jù)量也是沒(méi)有任何意義的。利用Python進(jìn)行網(wǎng)絡(luò)爬蟲,是通過(guò)既定規(guī)則,自動(dòng)地抓取網(wǎng)頁(yè)信息的計(jì)算機(jī)程序。爬蟲的目地在于將目標(biāo)網(wǎng)頁(yè)數(shù)據(jù)下載至本地計(jì)算機(jī),以便進(jìn)行后續(xù)的數(shù)據(jù)分析。爬蟲技術(shù)的興起源于海量網(wǎng)絡(luò)數(shù)據(jù)的可用性,通過(guò)爬蟲技術(shù),我們能夠較為容易的獲取網(wǎng)絡(luò)數(shù)據(jù),并通過(guò)對(duì)數(shù)據(jù)的分析,得出有價(jià)值的結(jié)論[1]。

2.Python開發(fā)環(huán)境及技術(shù)支持

2.1 Anaconda 下載以及Scrapy安裝

在本項(xiàng)目的實(shí)現(xiàn)過(guò)程中,選擇 Anaconda集成環(huán)境,Anaconda可以認(rèn)為是Python的一個(gè)集成安裝,平臺(tái)安裝完成后就默認(rèn)搭建好了python、IPython、集成開發(fā)環(huán)境Spyder和眾多的包和模塊,非常智能化。由于開發(fā)工作將在Win7平臺(tái)中進(jìn)行,因此選用Anaconda進(jìn)行各種Python擴(kuò)展包的維護(hù)也是非常方便和高效的。

Anaconda安裝完畢之后,以管理員身份進(jìn)入Anaconda Prompt對(duì)平臺(tái)進(jìn)行擴(kuò)展包的安裝。此次開發(fā)過(guò)程中使用Scrapy爬蟲框架進(jìn)行數(shù)據(jù)爬取工作,因此在Anaconda Prompt中進(jìn)行Scrapy的安裝。

2.4 相關(guān)Python包簡(jiǎn)介

(1)requests介紹

Request是使用屬性名來(lái)得到對(duì)應(yīng)的屬性值,并可以自動(dòng)地把返回信息Unicode解碼,Request可以自行保存返回內(nèi)容,所以我們可以讀取多次[2]。

發(fā)送請(qǐng)求

導(dǎo)入Requests模塊

>>>import requests

獲取網(wǎng)頁(yè)

>>>content = requests.get(url).text

(2)JSON介紹

JSON(JavaScript Object Notation) 是一類輕量級(jí)的數(shù)據(jù)交換方法。采用完全獨(dú)立于語(yǔ)言的文本格式,運(yùn)用了和c語(yǔ)言家族相類似的習(xí)慣(包含C,C++,C#,JAVA,JavaScript,Python等)。JSON具有的這些特點(diǎn)成為很好的數(shù)據(jù)交換語(yǔ)言。

引用模塊

>>>import json

編碼

>>>json.dumps()把Python對(duì)象編碼轉(zhuǎn)換成json字符串

解碼

>>>json.loads()把json格式的字符串解碼轉(zhuǎn)換成Python對(duì)象

(3)Scrapy介紹

Scrapy是一種基于Twisted,僅僅使用Python語(yǔ)言實(shí)現(xiàn)的爬蟲框架,開發(fā)幾個(gè)模塊就能夠比較方便快捷的實(shí)現(xiàn)一次爬蟲,抓取網(wǎng)頁(yè)中的有效信息用來(lái)分析。

Scrapy作為一個(gè)包,功能強(qiáng)大,是一個(gè)網(wǎng)絡(luò)爬蟲的架構(gòu),是Python開發(fā)的快速高層次的屏幕抓取框架,也可以用于自動(dòng)化運(yùn)維。在本次項(xiàng)目實(shí)施中,是一種最優(yōu)的設(shè)計(jì)方案。

3.項(xiàng)目實(shí)施過(guò)程

本次項(xiàng)目中,我們使用Scrapy創(chuàng)建一個(gè)爬蟲對(duì)象Item的相關(guān)類,對(duì)該類中各個(gè)靜態(tài)變量進(jìn)行定義。在通過(guò)requests模塊對(duì)相應(yīng)網(wǎng)頁(yè)進(jìn)行請(qǐng)求,獲得網(wǎng)頁(yè)對(duì)應(yīng)的源碼,對(duì)得到的源碼格式進(jìn)行整合,再通過(guò)json模塊對(duì)整合好的源碼進(jìn)行分析,將分析結(jié)果逐個(gè)賦值給Item類中的靜態(tài)變量。

圖1 項(xiàng)目整體實(shí)現(xiàn)流程圖

以京東商城為例,需要先構(gòu)建一個(gè)商品評(píng)論的Item類,Item類中包含了評(píng)論中所出現(xiàn)的必要信息,比如:買家ID、買家所在省份、評(píng)論具體內(nèi)容、評(píng)論時(shí)間、打分等。建立好Item類之后,我們通過(guò)對(duì)該商品評(píng)論url的請(qǐng)求獲取相應(yīng)的網(wǎng)頁(yè)源碼,進(jìn)行簡(jiǎn)單處理轉(zhuǎn)換為json數(shù)據(jù)格式,通過(guò)json.loads模塊進(jìn)行解析,得到每條評(píng)論的具體相關(guān)內(nèi)容,項(xiàng)目主要流程如圖1所示。

3.1 選擇合適的電商平臺(tái)

考慮大型電商平臺(tái),在淘寶官網(wǎng)的用戶評(píng)論區(qū),沒(méi)有發(fā)現(xiàn)很多與客戶地理信息有關(guān)的數(shù)據(jù),而且淘寶網(wǎng)站設(shè)計(jì)中有反爬蟲程序,僅僅獲取評(píng)論中最近99頁(yè)的內(nèi)容,因此在做地理信息相關(guān)的物流指導(dǎo)過(guò)程中,我們選擇京東作為目標(biāo)網(wǎng)站。

另外,在商品的購(gòu)買人數(shù)方面,京東商品評(píng)論數(shù)能夠達(dá)到6萬(wàn)+,數(shù)據(jù)量足夠用來(lái)實(shí)驗(yàn)分析。本次實(shí)驗(yàn)結(jié)果可以為京東提供一些銷售方案,實(shí)驗(yàn)數(shù)據(jù)真實(shí)準(zhǔn)確,試驗(yàn)方法科學(xué)有效且具有可行性。

3.3 方案規(guī)劃

3.3.1 項(xiàng)目節(jié)點(diǎn)問(wèn)題分析

(1)找到爬蟲的網(wǎng)頁(yè)地址

確定對(duì)京東平臺(tái)的商品信息進(jìn)行爬蟲,所以通過(guò)分析網(wǎng)站,得到URL的格式。

這是京東上vivox9手機(jī)的網(wǎng)址https://item.jd.com/10941037480.html對(duì)這個(gè)網(wǎng)址進(jìn)一步分析得到評(píng)論區(qū)真正的網(wǎng)址如下:

http://sclub.jd.com/productpage/p-10941037480-s-0-t-3-p-1.html?callback=fetchJSON_comment98vv341

(2)關(guān)鍵代碼分析

將爬蟲程序中需要用到的模塊導(dǎo)入,requests、json、scrapy。 sys是關(guān)于系統(tǒng)的模塊,包含很多函數(shù),本次程序中使用到reload(sys),重置系統(tǒng),將系統(tǒng)編碼設(shè)置為utf-8,sys.setdefaultencoding(‘utf-8’)。re是關(guān)于正則的模塊,本次程序中使用re.findall()函數(shù)將以迭代方式返回匹配的字符串,使用re的一般步驟是先使用re.compile()函數(shù)編譯成實(shí)例再使用findall()函數(shù)。time是關(guān)于時(shí)間的模塊,本次程序中使用time.sleep()函數(shù)使程序暫停一段時(shí)間。threading是關(guān)于多線程的模塊,本次程序中使用threading.Lock()函數(shù)創(chuàng)建鎖。(見圖2)

圖2

爬取相關(guān)信息并對(duì)所獲取的信息進(jìn)行json文本處理,實(shí)例化一個(gè)commentItem,則可以得到每一個(gè)字段的值。本次實(shí)驗(yàn)中,由于需要分析商品在不同地區(qū)的購(gòu)買情況所以過(guò)濾掉了userProvince為空的數(shù)據(jù)信息。

user_name和user_ID分別記錄用戶名和用戶ID,只是為了記錄一條數(shù)據(jù)。

userProvince記錄用戶所在省份,將來(lái)可以統(tǒng)計(jì)該商品在不同地區(qū)的銷售情況,也可以對(duì)比不同商品在同一地區(qū)的銷售情況,甚至可以指導(dǎo)京東倉(cāng)儲(chǔ)在各個(gè)地區(qū)的物流壓力。

Content記錄用戶評(píng)價(jià),對(duì)一種商品的全部評(píng)價(jià)將來(lái)可以進(jìn)行分詞,計(jì)算詞頻,就可以得到對(duì)本商品的詞云。

Date記錄用戶創(chuàng)建評(píng)論的時(shí)間,將來(lái)可以分析某段時(shí)間內(nèi)商品在不同地區(qū)的銷售情況,也可以分析在某地區(qū)不同季度該商品的銷售情況。(見圖3)

Score記錄用戶評(píng)分,userlevelname記錄用戶等級(jí),將來(lái)二者可以結(jié)合起來(lái)對(duì)該商品進(jìn)行一個(gè)加權(quán)的評(píng)分,用戶等級(jí)比較高的評(píng)分占比較重,這樣對(duì)該商品的評(píng)分更客觀。

Ismobile記錄用戶使用工具是手機(jī)還是電腦,如果是手機(jī)則為true,否則為false,將來(lái)可以分析不同地區(qū)網(wǎng)購(gòu)時(shí)使用手機(jī)和電腦的占比情況。

write_comm()是一個(gè)自定義函數(shù),作用是請(qǐng)求指定的URL,在這個(gè)URL中固定好商品ID,頁(yè)碼數(shù),完成后寫入指定文本中。URL是通過(guò)分析原網(wǎng)站得到的一個(gè)固定格式,格式中只有商品ID和頁(yè)碼可以改變,其余部分的格式不能改變。在這個(gè)函數(shù)中調(diào)用get_items()函數(shù)。將得到的所有內(nèi)容存儲(chǔ)在指定的文本文檔中。(見圖4)

這是程序的主函數(shù),邏輯大致如下:首先固定好商品ID、開始頁(yè)碼、得到整個(gè)URL的格式,調(diào)用max_page()函

數(shù)分析評(píng)論頁(yè)第一頁(yè)得到最大頁(yè)碼數(shù)并賦值給page_max,設(shè)置開始頁(yè)page_begin=0,京東評(píng)論頁(yè)碼起始頁(yè)碼從0開始。打開寫入文件f_open,將來(lái)存儲(chǔ)爬取的所有數(shù)據(jù)。在這個(gè)程序中,設(shè)置了多線程,爬取速度與帶寬有關(guān),為了加快速度,我們可以使用多線程來(lái)參與爬取。在開始頁(yè)到最大頁(yè)之中循環(huán),調(diào)用write_comm()函數(shù),使用多線程就可以快速獲得所有的數(shù)據(jù)。

(3)數(shù)據(jù)處理

通過(guò)爬蟲程序獲得對(duì)應(yīng)商品的文本數(shù)據(jù),經(jīng)過(guò)格式轉(zhuǎn)換,提取各條評(píng)論對(duì)應(yīng)的信息,再通過(guò) Office Excel進(jìn)行數(shù)據(jù)格式調(diào)整、處理分類、數(shù)據(jù)交集數(shù)量統(tǒng)計(jì)、繪制相應(yīng)的圖表。

圖3

圖4

4.數(shù)據(jù)挖掘和數(shù)據(jù)分析

Python基礎(chǔ)教程、花式營(yíng)養(yǎng)早餐、協(xié)和媽媽圈備孕書籍,這是三本看似沒(méi)有聯(lián)系的書籍。

《花式營(yíng)養(yǎng)早餐》的數(shù)據(jù),有效數(shù)據(jù)大概30000條。信息有效。

《Python基礎(chǔ)教程》的數(shù)據(jù),有效數(shù)據(jù)大約15000條。信息準(zhǔn)確。

《育兒教程》的數(shù)據(jù),有效數(shù)據(jù)大約12000條。信息準(zhǔn)確。

做出折線圖:(見圖5)

本次項(xiàng)目中將三種數(shù)據(jù)的對(duì)比做成折線圖,對(duì)數(shù)據(jù)進(jìn)行對(duì)比分析:

(1)觀察三種不同類別書籍的銷售情況,可以看出,購(gòu)買力前幾名的城市都是北京、廣東、江蘇、上海等地,原因可能有幾種。這些城市發(fā)展比較好,思想更加解放,對(duì)知識(shí)更加渴求。這些城市不管銷售什么都不會(huì)太差。

圖5 三種不同類型書籍在全國(guó)各地區(qū)的銷售量對(duì)比圖

(2)對(duì)于菜譜類的書籍,可以看出,折線圖的變化相對(duì)比較平緩,這類工具書很多省份的人都有需求,沒(méi)有專業(yè)限制。但是對(duì)于Python這類的專業(yè)性書籍,在特定的地區(qū)需求量比較大,比如北京、上海、廣東,這些城市計(jì)算機(jī)技術(shù)發(fā)展相對(duì)迅速,對(duì)新技術(shù)的學(xué)習(xí)人數(shù)多。但是通過(guò)折線圖可以看出,折線圖的走勢(shì)直上直下,在山東、遼寧、河北等地銷量一般,說(shuō)明Python這一技術(shù)在這些地區(qū)并沒(méi)有達(dá)到很高的發(fā)展,使用這門開發(fā)語(yǔ)言的人比較少。

(3)備孕類的書籍和Python類的書籍折線圖走勢(shì)基本相近,我們可以大膽推測(cè),學(xué)習(xí)Python的人一般都是二三十歲的年輕人,這些人同樣也需要備孕類和媽媽幫這類的書籍,所以這兩類書籍在各個(gè)省份的銷量基本一致。如果書店中銷售Python等技術(shù)類書籍,那么店主不妨可以銷售備孕類書籍。

5.總結(jié)

本次項(xiàng)目的結(jié)果,成功驗(yàn)證了不同種類書籍之間的關(guān)系,為以后的研究提供了思路。

不管是電子商務(wù)平臺(tái)還是搜索引擎在相關(guān)方面的合理布局和優(yōu)化規(guī)則,都需要研究人員利用海量數(shù)據(jù)找出不同事物之間千絲萬(wàn)縷的聯(lián)系,本文使用Python開發(fā)程序,以京東商品為例,得出消費(fèi)者的一些購(gòu)物習(xí)慣,為商家提供了一種銷售策略,為以后的研究作了鋪墊。

猜你喜歡
爬蟲網(wǎng)頁(yè)京東
利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
做“最懂產(chǎn)業(yè)的云”,京東云首發(fā)云操作系統(tǒng)
基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
基于HTML5與CSS3的網(wǎng)頁(yè)設(shè)計(jì)技術(shù)研究
基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
基于HTML5靜態(tài)網(wǎng)頁(yè)設(shè)計(jì)
大數(shù)據(jù)背景下校園輿情的爬蟲應(yīng)用研究
13年首次盈利,京東做對(duì)了什么?
基于URL和網(wǎng)頁(yè)類型的網(wǎng)頁(yè)信息采集研究
大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)