python分析銷量10w+的車?yán)遄?,發(fā)現(xiàn)了一個(gè)秘密

又到了吃車?yán)遄拥募竟?jié)。

冬季,中國市面上的車?yán)遄又饕獊碜阅习肭虻闹抢?、新西蘭和澳大利亞等地,其中中國更是智利最大的車?yán)遄映隹趪?,出國占比達(dá)百分之90以上。。

遠(yuǎn)隔重洋、長途跋涉而來的車?yán)遄拥南M(fèi)價(jià)格里包括了運(yùn)輸費(fèi)用、冷藏費(fèi)用等額外費(fèi)用,自然冬季車?yán)遄訉?duì)于夏季的車?yán)遄觾r(jià)格上要高出不少。另外,貨以稀為貴,中國冬季水果相對(duì)于夏季稀缺,惹眾人垂涎的車?yán)遄觾r(jià)格自然水漲船高。

但是這些因素絲毫不能影響中國吃貨對(duì)車?yán)遄拥溺姁邸?021車?yán)遄愉N量暴漲32倍,中國吃貨憑實(shí)力養(yǎng)活50萬智利人

今天我們那就來某東網(wǎng)看看銷量第一10w+的車?yán)遄拥降子卸嗍軞g迎?

1 需求分析

我們本次獲取的目標(biāo)有用戶昵稱、產(chǎn)品評(píng)分、產(chǎn)品類型、評(píng)論時(shí)間、評(píng)論點(diǎn)贊數(shù)和回復(fù)數(shù)還有具體評(píng)論內(nèi)容等七項(xiàng)內(nèi)容

2 網(wǎng)頁分析

從圖中我們要獲取的內(nèi)容都在當(dāng)前頁面中,我們使用瀏覽器打開格式如下:

這是一個(gè)json格式的數(shù)據(jù)集。

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

分析完了我們上代碼,使用requests發(fā)送請(qǐng)求獲取網(wǎng)頁響應(yīng)

url?=f'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=20180186520&score=0&sortType=5&page={page}&pageSize=10&isShadowSku=0&rid=0&fold=1'

headers?=?{

'Cookie':?xxxxxx',

'

Referer':?'https://item.jd.com/',

'

User-Agent':?'xxxxxx'

}

#?獲取響應(yīng)

resp?=?requests.get(url,?headers=headers)

結(jié)果如下,我們可以看到打印出來的結(jié)果不是一個(gè)標(biāo)準(zhǔn)的json格式數(shù)據(jù)集

所以我們先要構(gòu)造標(biāo)準(zhǔn)的json格式

便于我們后續(xù)對(duì)數(shù)據(jù)內(nèi)容進(jìn)行提取。

構(gòu)造方法如下:

json_data?=?json.loads(resp.text[20:-2])

然后我們獲取我們所要的內(nèi)容,成功打印如下:

forcmtsinjson_data['comments']:

#?昵稱

nickname?=?cmts['nickname']

#?評(píng)分

score?=?cmts['score']

#?評(píng)論

comments?=?cmts['content']

#?產(chǎn)品類型

product?=?cmts['productColor']

#?評(píng)論時(shí)間

time?=?cmts['referenceTime']

#?評(píng)論點(diǎn)贊數(shù)

starVote?=?cmts['usefulVoteCount']

#?評(píng)論回復(fù)數(shù)

cmtsReply?=?cmts['replyCount']

print(nickname,?score,?comments,?product,?time,?starVote,?cmtsReply)

'''

濱***啡 5 非常新鮮,過年菜市場車?yán)遄觾r(jià)格太高,直奔8-90一斤,用京東省了不少錢!? 2019-01-23 23:08:02 1 1

****j 5 收到貨真是大吃一驚,個(gè)個(gè)頂呱呱……物流特別給力隔天就收到了。和我在實(shí)體店買的98一斤的不分上下??诟刑貏e美味,肉肉特別多水分也很充足……總之非常非常滿意。下次需要還會(huì)繼續(xù)回購!愿賣家生意紅紅火火……………? 2019-02-23 15:28:54 1 1

d***l 5 質(zhì)量很不錯(cuò),好吃!棒棒的?。?!? 2019-01-31 17:21:45 1 1

G***j 5 發(fā)貨快,非常甜,簡直是驚喜呀!太喜歡了?? 2019-01-31 11:13:34 1 1

小***5?5?味道很甜,水分很足,超級(jí)棒,值得購買,推薦推薦,順豐兩天就收到了,真是好吃,還要買???2019-01-23?22:39:34?1?1

****j 5 收到了車?yán)遄?,非常新鮮,我所以不厭其煩地拍了那么多照片,就是讓大家知道,這箱車?yán)遄影b的非常好。檢查了一下,沒有壞果,和我期待的是一樣的。從物流蹤跡來看,,順豐快遞一環(huán)一環(huán)銜接的很緊密,我很滿意。這一款車?yán)遄淤I的很值:價(jià)格實(shí)惠,送貨速度快,水果質(zhì)量好,這一切讓我對(duì)這一家印象深刻。? 2019-01-23 09:05:14 1 1

****h?5?果實(shí)肥碩,甜美,包裝保護(hù)到位,很好吃,怎么感覺沒吃幾顆沒有了,沒有了,傷心??2019-01-05?21:05:33?1?1

****d 5 包裝很到位,貼心。果子也非常均勻,口感新鮮,酸酸甜甜,挺好!? 2018-07-20 16:44:19 1 1

u***v 5 很喜歡已經(jīng)推薦給單位的同事啦,同事也品嘗了很爽口。感謝有誠意的店,給我們提供這么好的農(nóng)戶產(chǎn)品,讓夏天過的也十分的清甜,等這次吃完了,我們就集體團(tuán)購。一定五星好評(píng),也非常謝謝客服熱情的服務(wù)也謝謝售后的工作人員。非常的誠懇,有壞果果,都是按照等價(jià)兌換的。? 2018-07-05 21:51:37 1 1

****4?5?是隔了一天收到的?從煙臺(tái)過來算快的了?煙臺(tái)又大又甜?沒有壞的?3斤對(duì)的?非常滿意??2018-06-01?20:27:03?1?2

'''

4 多頁爬取

我們有多頁爬取的需求就要觀察多頁來鏈接的規(guī)律從而構(gòu)造出多頁請(qǐng)求的

真實(shí)鏈接。

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=20180186520&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&rid=0&fold=1

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=20180186520&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=20180186520&score=0&sortType=5&page=2&pageSize=10&isShadowSku=0&rid=0&fold=1

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=20180186520&score=0&sortType=5&page=3&pageSize=10&isShadowSku=0&rid=0&fold=1

從以上連接我們可以觀察得出控制翻頁的就是page參數(shù)。

所以我們據(jù)此構(gòu)造出以下鏈接從而獲取多頁數(shù)據(jù)。

url?=f'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=20180186520&score=0&sortType=5&page={page}&pageSize=10&isShadowSku=0&rid=0&fold=1'

我們先來獲取前100頁數(shù)據(jù)作為測試如下:

5 數(shù)據(jù)存儲(chǔ)

存儲(chǔ)數(shù)據(jù)我們使用openpyxl將其存于Excel,便于我們后續(xù)的數(shù)據(jù)清洗、處理和可視化

具體可以參考以下教程:

我是如何把python爬蟲獲取到的數(shù)據(jù)寫入Excel的?

ws?=?op.Workbook()

wb?=?ws.create_sheet(index=0)

wb.cell(row=1,?column=1,?value='昵稱')

wb.cell(row=1,?column=2,?value='評(píng)分')

wb.cell(row=1,?column=3,?value='產(chǎn)品類型')

wb.cell(row=1,?column=4,?value='評(píng)論時(shí)間')

wb.cell(row=1,?column=5,?value='評(píng)論點(diǎn)贊數(shù)')

wb.cell(row=1,?column=6,?value='評(píng)論回復(fù)數(shù)')

wb.cell(row=1,?column=7,?value='評(píng)論內(nèi)容')

wb.cell(row=count,?column=1,?value=nickname)

wb.cell(row=count,?column=2,?value=score)

wb.cell(row=count,?column=3,?value=product)

wb.cell(row=count,?column=4,?value=time)

wb.cell(row=count,?column=5,?value=starVote)

wb.cell(row=count,?column=6,?value=cmtsReply)

wb.cell(row=count,?column=7,?value=comments)

ws.save('車?yán)遄?xlsx')

結(jié)果如下:

6 數(shù)據(jù)清洗

我們?cè)诖耸褂胮andas對(duì)數(shù)據(jù)進(jìn)行讀取然后去重復(fù)和去除空值處理。

隨機(jī)抽取五條數(shù)據(jù)展示如下:

#?讀取文件

rcv_data?=?pd.read_excel('./車?yán)遄?xlsx')

#?刪除重復(fù)記錄和缺失值

rcv_data?=?rcv_data.drop_duplicates()

rcv_data?=?rcv_data.dropna()

#?抽樣展示

print(rcv_data.sample(5))

'''

昵稱??評(píng)分??產(chǎn)品類型?????????????????評(píng)論時(shí)間??評(píng)論點(diǎn)贊數(shù)??評(píng)論回復(fù)數(shù)???????????????????????????????????????????????評(píng)論內(nèi)容

535??小***太???5???NaN??2021-01-20?11:21:13??????0??????0???????????????????????????????????發(fā)貨速度還挺快,味道很棒,很新鮮

10???y***0???5???NaN??2021-03-18?21:18:48??????1??????1?????????????????????????????????寶貝已經(jīng)收到非常喜歡這款真的是好舒服

529??w***4???5???NaN??2021-01-20?14:30:50??????0??????1??送貨快包裝完好無損,貨到時(shí)冰冰涼涼非常新鮮,櫻桃個(gè)大均勻,飽滿多汁,甜中微微帶點(diǎn)兒酸,非常好...

278? u***s ? 5 ? NaN? 2021-07-03 12:40:27 ?????0??????0?????????????????????????????????送貨很快,包裝完好,新鮮。酸甜可口。

82???小***_???5???NaN??2020-05-13?12:39:49??????2??????0???????????品質(zhì)特好,味道不錯(cuò),很好的東西,快遞也很給力,東西包裝很好,賣家也給力,值得購買5?21:51:37?1?1

****4?5?是隔了一天收到的?從煙臺(tái)過來算快的了?煙臺(tái)又大又甜?沒有壞的?3斤對(duì)的?非常滿意??2018-06-01?20:27:03?1?2

'''

7 詞頻展示

數(shù)據(jù)可視化之前我們先要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,這里我們使用的是熊貓來處理數(shù)據(jù),具體可以參考:

讓人無法拒絕的pandas技巧,簡單卻好用到爆!

我們獲取前十個(gè)高頻詞匯以及出現(xiàn)頻率動(dòng)圖如下:

#?詞頻設(shè)置

all_words?=?[wordforwordinresult.split('?')iflen(word)?>1andwordnotinstop_words]

wordcount?=?Counter(all_words).most_common(100)

x1_data,?y1_data?=?list(zip(*wordcount))

print(x1_data)

print(y1_data)

7 詞云展示

我們使用stylecloud來繪圖,部分代碼如下:

有興趣的笑傲伙伴可以參考:

如何使用python實(shí)現(xiàn)一個(gè)優(yōu)雅的詞云?(超詳細(xì))

defvisual_ciyun():

mask?=?imread('1.jpg')

wordcloud?=?WordCloud(font_path='msyh.ttc',?mask?=?mask,?stopwords=stop_words,?background_color='white').generate(result)

wordcloud.to_file('pic.jpg')

print('詞云圖繪制成功!')

評(píng)論點(diǎn)贊最多

我們使用pandas找出點(diǎn)贊最多的一條評(píng)論

max_stars?=?rcv_data[rcv_data['評(píng)論點(diǎn)贊數(shù)']?==?rcv_data['評(píng)論點(diǎn)贊數(shù)'].max()]

'''

昵稱??評(píng)分??產(chǎn)品類型?????????????????評(píng)論時(shí)間??評(píng)論點(diǎn)贊數(shù)??評(píng)論回復(fù)數(shù)???????????????????????????????????????????????評(píng)論內(nèi)容

z***1 ? 5 ? NaN? 2021-12-13 18:27 ?? 169 ??? 21 ?非常新鮮,非常大。價(jià)格便宜了很多,性價(jià)比超高,真的特別劃算,包裝也很高端大氣上檔次,值得購買。京東發(fā)貨速度挺快的,贊一個(gè),會(huì)再來光顧噠~

'''

評(píng)論內(nèi)容如下:

情感分析

如果有人問,有沒有比較快速簡單的方法,快速進(jìn)行情感分析,那么 SnowNLP 庫就是答案。

SnowNLP 主要可以進(jìn)行中文分詞、詞性標(biāo)注、情感分析、文本分類、轉(zhuǎn)換拼音、繁體轉(zhuǎn)簡體、提取文本關(guān)鍵詞、提取摘要、分割句子、文本相似等。

需要注意的是,用 SnowNLP 進(jìn)行情感分析,官網(wǎng)指出電商評(píng)論的準(zhǔn)確率較高,其實(shí)是因?yàn)樗恼Z料庫主要是電商評(píng)論數(shù)據(jù),但是可以自己構(gòu)建相關(guān)領(lǐng)域語料庫,替換單一的電商評(píng)論語料,準(zhǔn)確率也挺不錯(cuò)的。

安裝

pip?install?snownlp

使用

fromsnownlpimportSnowNLP

情感分析

我們通過用戶的評(píng)論數(shù)據(jù)來對(duì)車?yán)遄幼鲆恍┖唵蔚姆治龊驼急?/p>

#?情感分析

defanay_data():

all_words?=?[wordforwordinresult.split('?')iflen(word)?>1andwordnotinstop_words]

positibe?=?negtive?=?middle?=0

foriinall_words:

pingfen?=?SnowNLP(i)

ifpingfen.sentiments?>0.7:

positibe?+=1

elifpingfen.sentiments?<0.3:

negtive?+=1

else:

middle?+=1

print(positibe,?negtive,?middle)

'''

6125?500?2567

'''

SnowNLP 對(duì)情感的測試值為 0 到 1,值越大,說明情感傾向越積極。

得到的情感值很高,說明買家對(duì)商品比較認(rèn)可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容