python分析銷量10w+的車?yán)遄樱l(fā)現(xiàn)了一個秘密

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

冬季搪搏,中國市面上的車?yán)遄又饕獊碜阅习肭虻闹抢?凇⑿挛魈m和澳大利亞等地稿黄,其中中國更是智利最大的車?yán)遄映隹趪翘埃鰢急冗_(dá)百分之90以上醉拓。秆乳。

遠(yuǎn)隔重洋董习、長途跋涉而來的車?yán)遄拥南M價格里包括了運輸費用畦粮、冷藏費用等額外費用,自然冬季車?yán)遄訉τ谙募镜能嚴(yán)遄觾r格上要高出不少乖阵。另外宣赔,貨以稀為貴,中國冬季水果相對于夏季稀缺瞪浸,惹眾人垂涎的車?yán)遄觾r格自然水漲船高儒将。

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

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

1 需求分析

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

2 網(wǎng)頁分析

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

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

3 發(fā)送請求

分析完了我們上代碼,使用requests發(fā)送請求獲取網(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é)果不是一個標(biāo)準(zhǔn)的json格式數(shù)據(jù)集

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

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

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

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

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

forcmtsinjson_data['comments']:

#?昵稱

nickname?=?cmts['nickname']

#?評分

score?=?cmts['score']

#?評論

comments?=?cmts['content']

#?產(chǎn)品類型

product?=?cmts['productColor']

#?評論時間

time?=?cmts['referenceTime']

#?評論點贊數(shù)

starVote?=?cmts['usefulVoteCount']

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

cmtsReply?=?cmts['replyCount']

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

'''

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

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

d***l 5 質(zhì)量很不錯华蜒,好吃辙纬!棒棒的!0认病贺拣!? 2019-01-31 17:21:45 1 1

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

小***5?5?味道很甜,水分很足啥辨,超級棒涡匀,值得購買,推薦推薦溉知,順豐兩天就收到了陨瘩,真是好吃,還要買???2019-01-23?22:39:34?1?1

****j 5 收到了車?yán)遄蛹墩В浅P迈r舌劳,我所以不厭其煩地拍了那么多照片,就是讓大家知道玫荣,這箱車?yán)遄影b的非常好甚淡。檢查了一下,沒有壞果捅厂,和我期待的是一樣的材诽。從物流蹤跡來看,恒傻,順豐快遞一環(huán)一環(huán)銜接的很緊密脸侥,我很滿意。這一款車?yán)遄淤I的很值:價格實惠盈厘,送貨速度快睁枕,水果質(zhì)量好,這一切讓我對這一家印象深刻。? 2019-01-23 09:05:14 1 1

****h?5?果實肥碩外遇,甜美注簿,包裝保護到位,很好吃跳仿,怎么感覺沒吃幾顆沒有了诡渴,沒有了,傷心??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)品妄帘,讓夏天過的也十分的清甜楞黄,等這次吃完了,我們就集體團購抡驼。一定五星好評鬼廓,也非常謝謝客服熱情的服務(wù)也謝謝售后的工作人員。非常的誠懇婶恼,有壞果果,都是按照等價兌換的柏副。? 2018-07-05 21:51:37 1 1

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

'''

4 多頁爬取

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

真實鏈接勾邦。

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ù)存儲

存儲數(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='評分')

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

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

wb.cell(row=1,?column=5,?value='評論點贊數(shù)')

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

wb.cell(row=1,?column=7,?value='評論內(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ù)清洗

我們在此使用pandas對數(shù)據(jù)進(jìn)行讀取然后去重復(fù)和去除空值處理蕉饼。

隨機抽取五條數(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))

'''

昵稱??評分??產(chǎn)品類型?????????????????評論時間??評論點贊數(shù)??評論回復(fù)數(shù)???????????????????????????????????????????????評論內(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??送貨快包裝完好無損昧港,貨到時冰冰涼涼非常新鮮,櫻桃個大均勻支子,飽滿多汁创肥,甜中微微帶點兒酸,非常好...

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ì)特好趾代,味道不錯贯底,很好的東西,快遞也很給力撒强,東西包裝很好禽捆,賣家也給力,值得購買5?21:51:37?1?1

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

'''

7 詞頻展示

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

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

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

#?詞頻設(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實現(xiàn)一個優(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('詞云圖繪制成功摆马!')

評論點贊最多

我們使用pandas找出點贊最多的一條評論

max_stars?=?rcv_data[rcv_data['評論點贊數(shù)']?==?rcv_data['評論點贊數(shù)'].max()]

'''

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

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

'''

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

情感分析

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

SnowNLP 主要可以進(jìn)行中文分詞、詞性標(biāo)注乘瓤、情感分析环形、文本分類、轉(zhuǎn)換拼音衙傀、繁體轉(zhuǎn)簡體抬吟、提取文本關(guān)鍵詞、提取摘要统抬、分割句子拗军、文本相似等任洞。

需要注意的是,用 SnowNLP 進(jìn)行情感分析发侵,官網(wǎng)指出電商評論的準(zhǔn)確率較高交掏,其實是因為它的語料庫主要是電商評論數(shù)據(jù),但是可以自己構(gòu)建相關(guān)領(lǐng)域語料庫刃鳄,替換單一的電商評論語料盅弛,準(zhǔn)確率也挺不錯的。

安裝

pip?install?snownlp

使用

fromsnownlpimportSnowNLP

情感分析

我們通過用戶的評論數(shù)據(jù)來對車?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 對情感的測試值為 0 到 1叔锐,值越大挪鹏,說明情感傾向越積極。

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讨盒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子步责,更是在濱河造成了極大的恐慌返顺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔓肯,死亡現(xiàn)場離奇詭異遂鹊,居然都是意外死亡,警方通過查閱死者的電腦和手機蔗包,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門秉扑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人调限,你說我怎么就攤上這事舟陆。” “怎么了耻矮?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵辈赋,是天一觀的道長潜支。 經(jīng)常有香客問我压鉴,道長辅肾,這世上最難降的妖魔是什么陪毡? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任米母,我火速辦了婚禮,結(jié)果婚禮上毡琉,老公的妹妹穿的比我還像新娘铁瞒。我一直安慰自己,他們只是感情好桅滋,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布慧耍。 她就那樣靜靜地躺著身辨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芍碧。 梳的紋絲不亂的頭發(fā)上煌珊,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音泌豆,去河邊找鬼定庵。 笑死,一個胖子當(dāng)著我的面吹牛踪危,可吹牛的內(nèi)容都是我干的蔬浙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼贞远,長吁一口氣:“原來是場噩夢啊……” “哼畴博!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓝仲,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤俱病,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后杂曲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庶艾,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年擎勘,在試婚紗的時候發(fā)現(xiàn)自己被綠了咱揍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡棚饵,死狀恐怖煤裙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情噪漾,我是刑警寧澤硼砰,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站欣硼,受9級特大地震影響题翰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诈胜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一豹障、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧焦匈,春花似錦血公、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摔笤。三九已至,卻和暖如春垦写,著一層夾襖步出監(jiān)牢的瞬間吕世,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工梯投, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寞冯,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓晚伙,卻偏偏與公主長得像吮龄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子咆疗,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容