python爬取某东实战|358元的月饼凭什么能卖20万单?
Python之王
共 12274字,需浏览 25分钟
·
2021-09-24 15:05
背景介绍
需求分析
我们先来找到评论对应的真实链接,如下:
网页分析
发送请求
url = f'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=1842931&score=0&sortType=5&page={page}&pageSize=10&isShadowSku=0&rid=0&fold=1'
headers = {
'Cookie': 'unpl=V2_ZzNtbUYHR0Z0W0RWKUsLV2JREA9LXhcQIFoVB30QC1JnUxUOclRCFnUUR1xnGF4UZwYZXEBcQBRFCEdkeBBVAWMDE1VGZxBFLV0CFSNGF1wjU00zQwBBQHcJFF0uSgwDYgcaDhFTQEJ2XBVQL0oMDDdRFAhyZ0AVRQhHZH4RWwdlBRtaQGdzEkU4dlF8GV4GYzMTbUNnAUEpDEJUehhbSGILFV9AUUoSdzhHZHg%3d; __jdv=76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_5a5b0b33ccfc4c3c88e4dcbb78ff1a6b|1630649001988; __jdu=496337863; areaId=27; PCSYCityID=CN_610000_0_0; shshshfpa=a3671771-e2dd-e5ca-3826-cc6c1253d728-1630649005; shshshfpb=zwlMB6I2rOyoYF14FE0C55C00221B9C479F0871905120BD991A994D4EA9C43A60A4EB5A55AA5EBC0029C3AE2909633951CEB21D44548EE3AD9276B1A650D1D5E938AB485D8708F1E767A8B44503EFA82588A0DE1C83E88CC8F22632DB9EBDB62F76AC5CAD097F2A1F3BAEF3AA4BC32C0956F76DEEA203421F2F95A71D634D205C08D6EE0E8BD6B0FBB114387CE7A39116936C0C32E4D40854ABA3D6780899; _tp=dr8%2BZKvIJSECFYFRRyrDdA%3D%3D; pinId=hX_o7kOWsfSxiEupljIIzQ; shshshfp=166a1d8dfb1b2b55419a4cb0f70894c0; __jda=122270672.496337863.1630649000.1630649000.1630649002.1; __jdc=122270672; token=9ab8d7eb0dbbf4d5c4ddb224b59b3c46,2,905916; __tk=VUoJVxeMWZjCWlfyV0kwVMbOnxjNiUVOixbzRUyDnxG,2,905916; shshshsID=1134730281e295e1469f554a1fe95c59_5_1630649056546; __jdb=122270672.7.496337863|1.1630649002; ipLoc-djd=27-2428-31523-56718; 3AB9D23F7A4B3C9B=IS7P7DMAVM4STNYR6HHL2B2DAETHTEWAQ22DWM4MKQ642L5GPJSZKE6HTB3IAS7O763NIN3SCCAV66ZY5JXZ2SCFV4; jwotest_product=99; JSESSIONID=8971DE7AF521E92FE4AE8A0C4518F6AA.s1',
'Referer': 'https://item.jd.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) App, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}
# 获取响应
resp = requests.get(url, headers=headers)
ic(resp.text)
json_data = json.loads(resp.text[20:-2])
for cmts in json_data['comments']:
# 昵称
nickname = cmts['nickname']
# 评分
score = cmts['score']
# 评论
comments = cmts['content']
# 产品类型
product = cmts['productColor']
# 评论时间
time = cmts['referenceTime']
# 评论点赞数
starVote = cmts['usefulVoteCount']
# 评论回复数
cmtsReply = cmts['replyCount']
print(nickname, score, comments, product, time, starVote, cmtsReply)
'''
a***1 5 味道很好吃,是正品,活动价比商场实惠,物流迅速,相信自营。。。。。。 美心纸盒流心奶黄360g 2019-08-31 11:25:01 1 0
g***g 5 口感好,酥酥的,奶香味,孩子喜欢吃,也不会太甜,送人佳品,高大上,自己吃也好吃 美心流心奶黄360g 2020-09-10 15:18:22 0 0
炎***绯 5 外观非常小,品尝了一下,味道非常香甜,粘粘哒很好吃?,月饼做工质量顶级,就是价格太贵啦,节日送人首选。 美心纸盒流心奶黄360g 2019-08-10 19:30:36 14 0
****j 3 平均一块50元,也没多好吃,好吧 美心纸盒流心奶黄360g 2018-09-12 13:52:59 1 0
R***n 5 京东物流很棒,商家包裹非常好,一盒月饼匹配相当大的纸箱,里面还有防撞气泡塑料,很贴心的。再来说一说这个美心月饼那是好吃的没的说了,价格不菲真是太好吃了 美心流心奶黄360g 2020-09-20 12:36:38 0 0
x***8 5 官方的说法是用微波炉加热20秒吃,切开就能看到流心。我收到后拆开吃了两个,一个用微波炉加热,一个直接吃。用微波炉加热的那个感觉就是切开来的时候就奶黄已经流淌了。直接吃的那个就像是那种糖心鸡蛋一样,当中一圈是软的。味道很好,一如既往的相信京东,相信美心月饼。 美心纸盒流心奶黄360g 2019-08-27 22:27:17 0 0
b***5 5 美心月饼很好吃!不太甜,不油腻,味道很好! 美心盛意奶黄月饼270g 2020-09-13 16:35:49 0 0
b***n 5 真好吃啊,4种口味都试试。去年买的流心的就很好吃,今年又买了饼皮和这个,都挺好吃哒~京东买一是快,二是不会碎,放心多啦! 美心流心四式月饼360g 2020-09-06 21:17:50 1 1
c***4 5 好吃好吃好吃,连说三遍,收到的一个都没有碎,很好吃,拿微波炉叮一下更好吃,流沙的感觉沙沙的,吃下去回味无穷,京东的快递真的很方便,当天就到了 美心纸盒流心奶黄360g 2019-08-15 14:33:00 7 2
w***8 5 月饼很好,日期新鲜,送货神速。美心的月饼比较袖珍,味道没的说,流心奶黄更是经典。
港式月饼比较适合送人,尤其是北方的长辈,吃个新鲜,跟北方的月饼比精致许多。 美心流心奶黄360g 2020-09-18 09:26:37 0 2
'''
多页爬取
https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=1842931&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=1842931&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=1842931&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=1842931&score=0&sortType=5&page=3&pageSize=10&isShadowSku=0&rid=0&fold=1
https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=1842931&score=0&sortType=5&page={page}&pageSize=10&isShadowSku=0&rid=0&fold=1
数据存储
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='产品类型')
wb.cell(row=1, column=4, value='评论时间')
wb.cell(row=1, column=5, value='评论点赞数')
wb.cell(row=1, column=6, value='评论回复数')
wb.cell(row=1, column=7, value='评论内容')
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('月饼.xlsx')
词频展示
('月饼', '好吃', '美心', '味道', '包装', '不错', '喜欢', '物流', '口感', '特别')
(587, 311, 257, 161, 148, 128, 102, 100, 96, 80)
词云展示
我们使用stylecloud来绘图,部分代码如下:
有兴趣的笑傲伙伴可以参考:
gen_stylecloud(text=result,
icon_name='fab fa-apple',
font_path='msyh.ttc',
background_color='white',
output_name=pic,
custom_stopwords=stop_words
)
print('词云图绘制成功!')
最畅销口味
评论点赞最多
昵称 评分 产品类型 评论时间 评论点赞数 评论回复数 评论内容
111 ****o 5 美心纸盒流心奶黄360g 2019-07-16 19:12:22 68 53 美心月饼不愧是月饼中的劳斯莱斯。包装非常精美。无论送人还是自己吃都是首选。作为网红月饼除了。诱人的卖相,只管味道也没得说。微波炉加热10到15秒之后。月饼皮变得软糯香甜。奶香味特别浓郁。甜而不腻,流星至今流入口中。让人回味无穷,特别正宗老香港的味道。值得推荐。
评论内容如下:
情感分析
如果有人问,有没有比较快速简单的方法,快速进行情感分析,那么 SnowNLP 库就是答案。
SnowNLP 主要可以进行中文分词、词性标注、情感分析、文本分类、转换拼音、繁体转简体、提取文本关键词、提取摘要、分割句子、文本相似等。
需要注意的是,用 SnowNLP 进行情感分析,官网指出电商评论的准确率较高,其实是因为它的语料库主要是电商评论数据,但是可以自己构建相关领域语料库,替换单一的电商评论语料,准确率也挺不错的。
安装
pip install snownlp
使用
from snownlp import SnowNLP
情感分析
我们来测试京东月饼点赞最高的的评论数据:
# 情感分析
pinglun = u'''
连续20年香港销售冠军?,没有月饼能在中秋打败它
首创流心奶黄,是开山鼻祖哦
100%香港制作,品质数年如一日,稳定的很
打开流心奶黄月饼礼盒,外观是淡淡的乳黄色,上面印着烫金字“美心流心奶黄”。里面有8枚流心奶黄月饼,一个是45克,个头刚刚好。这种大小就比较适合小仙女和长辈们吃,一个吃下去刚刚好~
流心月饼最好的吃法,就是微波炉加热5-7秒,亲测7秒最佳,如果放在冰箱里冰过,就热10秒。
拿出来后,饼皮热乎乎的,软软的,掰开来后,奶黄慢慢流淌出来,闻着好香好诱人!
'''
Sentiment_analysis = SnowNLP(pinglun).sentiments
'''
0.9999999991125585
'''
SnowNLP 对情感的测试值为 0 到 1,值越大,说明情感倾向越积极。
得到的情感值很高,说明买家对商品比较认可,
下单时间分析
我们先来获取下单的具体年/月/日
在来分析一下老板们喜欢下单的时间可以据此备货等操作
所以我们先要使用pandas提取时间
pd_data = pd.read_excel('./月饼.xlsx')
pd_data['year'] = pd.DatetimeIndex(pd_data['Date']).year
pd_data['month'] = pd.DatetimeIndex(pd_data['Date']).month
pd_data['day'] = pd.DatetimeIndex(pd_data['Date']).day
年销量-折线图
从图可以看出此款月饼销量最好的2020年,有一种逐年递增的感觉
月销量-折线图
从图可以看出此款月饼销量最好的月份是每年的9月,农历的8-15也就是阳历的九月份,这个时候月饼销量是最好的
日销量-折线图
从图可以看出此款月饼销量最好的日期是是16、17号。
可以看出大家下单时间一般集中在周内。
好啦,今天的分享到此结束啦!
评论