互联网技术 / 互联网资讯 · 2024年3月9日 0

教你采集京东销售数据并进行数据分析和可视化

前言

大家好!我是古月星辰,大三本科生,数学专业,Python爬虫爱好者一枚。今天给大家带来JD数据的简单采集和可视化分析,希望大家可以喜欢。

教你采集京东销售数据并进行数据分析和可视化

一、目标数据

随着移动支付的普及,电商网站不断涌现,由于电商网站产品太多,由用户产生的评论数据就更多了,这次我们以京东为例,针对某一单品的评论数据进行数据采集,并且做简单数据分析。

二、页面分析

这个是某一手机页面的详情页,对应着手机的各种参数以及用户评论信息,页面URL是:

https://ITeM.jd.coM/10022971060622.htMl#none 

教你采集京东销售数据并进行数据分析和可视化

然后通过分析找到评论数据对应的数据接口,如下图所示:

教你采集京东销售数据并进行数据分析和可视化

它的请求uRl:

https://club.jd.coM/coMMent/ProdUCtPageCoMMents.action?callback=fetchJSON_coM Ment98&aMp; ProdUCtId=10022971060622 &aMp;scoRe=0&aMp;soRtType=5&aMp; page=0 &aMp;pageSize=10&aMp;iSShadowSk u=0&aMp;fold=1 

注意看到这两个关键参数

1. ProdUCtId: 每个商品有一个id

2. page: 对应的评论分页

三、解析数据

对评论数据的uRl发起请求:

uRl:https://club.jd.coM/coMMent/ProdUCtPageCoMMents.action?callback=fetchJSON_coMM ent98&aMp; ProdUCtId=10022971060622 &aMp;scoRe=0&aMp;soRtType=5&aMp; page=0 &aMp;pageSize=10&aMp;iSShado wSku=0&aMp;fold=1 

json.cn 打开json数据(我们的评论数据是以json形式与页面进行交互传输的),如下图所示:

教你采集京东销售数据并进行数据分析和可视化

分析可知,评论uRl中对应十条评论数据,对于每一条评论数据,我们需要获取3条数

据,contents,coloR,size(注意到上图的Maxsize,100,也就是100*10=1000条评论)。

四、程序 1.导入相关库 iMpoRt  requests iMpoRt  json iMpoRt  tiMe iMpoRt  openpyxl  #第三方模块,用于操作Excel文件的 #模拟浏览器发送请求并获取响应结果 iMpoRt Random  2.获取评论数据 def get_coMMents(ProdUCtId,page):     uRl=””https://club.jd.coM/coMMent/ProdUCtPageCoMMents.action?callback=fetchJSON_coMMent98&aMp;ProdUCtId={0}&aMp;scoRe=0&aMp;soRtType=5&aMp;page={1}&aMp;pageSize=10&aMp;iSShadowSku=0&aMp;fold=1””.foRMat(ProdUCtId,page) # 商品id     Resp=Requests.get(uRl,headeRs=headeRs)     #pRint(Resp.text)  #响应结果进行显示输出     s1=Resp.text.ReplACE(””fetchJSON_coMMent98(””,””””) #fetchJSON_coMMent98(     s=s1.ReplACE(””);””,””””)     #将stR类型的数据转成json格式的数据     # pRint(s,type(s))     # pRint(””*””*100)     Res=json.loads(s)     pRint(type(Res))     RetuRn Res  3.获取最大页数(也可以不写) def get_Max_page(ProdUCtId):     dic_data=get_coMMents(ProdUCtId,0)  #调用刚才写的函数,向服务器发送请求,获取字典数据     RetuRn dic_data[””MaxPage””]  4.提取数据 def get_info(ProdUCtId):     #调用函数获取商品的最大评论页数     #Max_page=get_Max_page(ProdUCtId)     # Max_page=10     lst=[]  #用于存储提取到的商品数据     foR page in Range(0,get_Max_page(ProdUCtId)):   #循环执行次数         #获取每页的商品评论         coMMents=get_coMMents(ProdUCtId,page)         coMM_lst=coMMents[””coMMents””]   #根据key获取value,根据coMMents获取到评论的列表(每页有10条评论)         #遍历评论列表,分别获取每条评论的中的内容,颜色,鞋码         foR ITeM in coMM_lst:   #每条评论又分别是一个字典,再继续根据key获取值             content=ITeM[””content””]  #获取评论中的内容   &nbsp