我半夜爬了嚴(yán)選的女性文胸?cái)?shù)據(jù),發(fā)現(xiàn)了驚天秘密

文 |?閑歡
來(lái)源:Python 技術(shù)「ID: pythonall」

剛剛過(guò)去的七夕,相信大家看到最多的是朋友圈秀恩愛(ài)(曬花),路上隨處可見(jiàn)的也是某某女性手捧鮮花,各種大小花店一搶而空,只剩下滿店狼藉。鮮花固然代表著美麗,代表著各種美好的含義,但是也不能教師節(jié)送花,母親節(jié)送花,情人節(jié)也送花呀!作為情侶以及準(zhǔn)情侶之間的禮物,能不能花點(diǎn)心思,送點(diǎn)不一樣的,比如內(nèi)衣……
有的男性朋友會(huì)跳出來(lái)罵了:說(shuō)得好聽(tīng),你知道送花多難嗎?這種隱秘的數(shù)據(jù),又不好直接開(kāi)口問(wèn),又不能直接丈量,萬(wàn)一送錯(cuò)了不得把美好的事情搞砸了?
鋼鐵直男的想法總是這么赤果果,其實(shí)想知道妹子喜歡什么顏色的內(nèi)衣,尺碼是怎樣的,不一定需要直接詢問(wèn),可以有各種方法可以獲取到,這里就不展開(kāi)這個(gè)話題了。
為了探究妹子們的平常對(duì)內(nèi)衣的普遍選擇,我連夜爬取了網(wǎng)易嚴(yán)選關(guān)鍵詞為“文胸”的商品評(píng)論數(shù)據(jù),從中挑選了幾個(gè)代表性的屬性來(lái)做分析。
爬取數(shù)據(jù)
巧婦難為無(wú)米之炊,為了分析數(shù)據(jù),我們首先要獲取數(shù)據(jù),在本次行動(dòng)中,我們需要獲取的是文胸的評(píng)論數(shù)據(jù),我們從結(jié)果出發(fā),一步步來(lái)細(xì)化我們的需求和步驟。
首先,我們?cè)诰W(wǎng)易嚴(yán)選的搜索框輸入關(guān)鍵詞“文胸”,出來(lái)文胸的產(chǎn)品列表界面:

我們隨便點(diǎn)開(kāi)一個(gè)商品,點(diǎn)擊“評(píng)論”,就可以看到如下信息:

我們分析請(qǐng)求列表,就可以很容易地發(fā)現(xiàn)評(píng)論數(shù)據(jù)是他通過(guò) https://you.163.com/xhr/comment/listByItemByTag.json 這個(gè)請(qǐng)求來(lái)獲取的。然后我們逐個(gè)地排除請(qǐng)求的參數(shù),最終發(fā)現(xiàn) itemId 和 page 兩個(gè)參數(shù)是必須的,其他的參數(shù)都可以不傳。
itemId 是指產(chǎn)品的ID,page 不用說(shuō)了,就是指的請(qǐng)求的頁(yè)碼。所以我們要獲取評(píng)論數(shù)據(jù)的前提是獲取到對(duì)應(yīng)的產(chǎn)品ID。
在詳情頁(yè)的請(qǐng)求中是可以獲取到產(chǎn)品ID的,但是我們想獲取搜索結(jié)果的產(chǎn)品ID列表就必須去搜索結(jié)果頁(yè)尋找。

同樣的,我們?cè)谒阉鹘缑娴恼?qǐng)求分析中,找到了 http://you.163.com/xhr/search/search.json 這個(gè)請(qǐng)求,逐個(gè)分析請(qǐng)求參數(shù)后發(fā)現(xiàn),我們只需要 keyword 和 page 兩個(gè)參數(shù)即可。
有了這個(gè)分析的前提,我們就可以著手寫(xiě)代碼來(lái)獲取數(shù)據(jù)了。代碼如下:
#?獲取產(chǎn)品列表
def?search_keyword(keyword):
????uri?=?'https://you.163.com/xhr/search/search.json'
????query?=?{
????????"keyword":?keyword,
????????"page":?1
????}
????try:
????????res?=?requests.get(uri,?params=query).json()
????????result?=?res['data']['directly']['searcherResult']['result']
????????product_id?=?[]
????????for?r?in?result:
????????????product_id.append(r['id'])
????????return?product_id
????except:
????????raise
#?獲取評(píng)論
def?details(product_id):
????url?=?'https://you.163.com/xhr/comment/listByItemByTag.json'
????try:
????????C_list?=?[]
????????for?i?in?range(1,?100):
????????????query?=?{
????????????????"itemId":?product_id,
????????????????"page":?i,
????????????}
????????????res?=?requests.get(url,?params=query).json()
????????????if?not?res['data']['commentList']:
????????????????break
????????????print("爬取第?%s 頁(yè)評(píng)論"?%?i)
????????????commentList?=?res['data']['commentList']
????????????C_list.extend(commentList)
????????????time.sleep(1)
????????return?C_list
????except:
????????raise
product_id?=?search_keyword('文胸')
r_list?=?[]
for?p?in?product_id:
????r_list.extend(details(p))
with?open('./comments.txt',?'w')?as?f:
????for?r?in?r_list:
????????try:
????????????f.write(json.dumps(r,?ensure_ascii=False)?+?'\n')
????????except:
????????????print('出錯(cuò)啦')
這里我只抓取了第一頁(yè)的產(chǎn)品來(lái)分析每個(gè)產(chǎn)品的前100頁(yè)的評(píng)論數(shù)據(jù)。我將獲取到的評(píng)論數(shù)據(jù)放在文件中存儲(chǔ)。預(yù)覽如下:

分析數(shù)據(jù)
抓取完數(shù)據(jù)后,我們就可以進(jìn)入探索環(huán)節(jié)了,我想從顏色、尺碼、評(píng)論三個(gè)角度去看看有沒(méi)有什么驚奇地發(fā)現(xiàn)。
我們來(lái)看看數(shù)據(jù)結(jié)構(gòu)的特點(diǎn):
{
??"skuInfo":?[
????"顏色:灰紫色套頭套裝",
????"尺碼:L(80BC-85AB)"
??],
??"frontUserName":?"葡****字",
??"frontUserAvatar":?"http://yanxuan.nosdn.127.net/2a4479567d935ca3a88d7ea0e425ebc8",
??"content":?"好穿!很舒服",
??"createTime":?1593738737271,
??"picList":?[],
??"commentReplyVO":?null,
??"memberLevel":?4,
??"appendCommentVO":?null,
??"star":?5,
??"itemId":?3989517
}
這是一條評(píng)論數(shù)據(jù),我們可以看到顏色和尺碼都放在 skuInfo 里面,評(píng)論是放在 content 字段里面。同時(shí),我們多翻一些數(shù)據(jù)就可以發(fā)現(xiàn),這個(gè)顏色和尺碼并不是統(tǒng)一的,不同的產(chǎn)品可能有不同的格式。
經(jīng)過(guò)總結(jié),對(duì)于顏色,我可以根據(jù)特點(diǎn)去除噪音,獲取到統(tǒng)一的格式。而對(duì)于尺碼,我只能將其分為兩類:一類是以S、M、L、XL、XXL這種標(biāo)識(shí)的比較通用的尺碼,另一類是類似于75B這種比較準(zhǔn)確的尺碼。
我將顏色和尺碼都做成柱狀圖來(lái)展示,而評(píng)論就用詞云來(lái)展示。最終的效果圖如下:




這個(gè)顏色有點(diǎn)出乎我的意料,我預(yù)想的最受歡迎的顏色應(yīng)該是黑色,結(jié)果淺膚色排在了第一,黑色排在了第二,不過(guò)相差不大。如果數(shù)據(jù)量再多一些的話,可能黑色會(huì)反超,成為第一。
而對(duì)于尺寸來(lái)說(shuō),我們看到精確的尺寸分布圖,前三都是B,緊接著是A和C,這個(gè)意味著什么大家自己去判斷,這里我就不展開(kāi)了。而通用的尺碼里面,M碼是最多的,L碼比M碼稍少,但是相差不明顯。
而對(duì)于評(píng)論的詞云,毫無(wú)意外地顯示,舒服是第一位的,質(zhì)量也比較重要。
總結(jié)
網(wǎng)易嚴(yán)選面向的群體應(yīng)該是35歲以下的新時(shí)代后浪們,而且主打的是物美價(jià)廉和性價(jià)比。所以這些數(shù)據(jù)也是這個(gè)群體的購(gòu)買(mǎi)喜好的體現(xiàn)。至于分析的結(jié)果,那就是仁者見(jiàn)仁智者見(jiàn)智了,哈哈!

