1.数据获取

由于手机的价格以及评论数是需要经过javascript渲染的动态信息,单纯用requests模块是爬取不到的。解决方案是首先使用selenium的webbrowser模块使用本地Chrome浏览器爬取每一款手机在京东的内部id,价格,以及评论数。然后再根据爬取到的id找到每款手机的销售页面,爬取每款手机的关键参数。

由于爬虫需要调用浏览器,因此在线上环境中无法运行。爬虫的代码放在了'python'文件夹的parsing_code.ipynb文件中。

下面是第一步爬取手机id,价格,评论数的代码。其他chrome_driver需要自己根据浏览器版本进行下载,网上教程https://www.jb51.net/article/162903.htm

chrome_driver = 'C:/Users/darren/Desktop/python_exercise/bags/chromedriver.exe'

browser = webdriver.Chrome(executable_path= chrome_driver)

phone_list=[]

for i in range(23):

browser.get("https://list.jd.com/list.html?cat=9987,653,655&page={}".format(i+1))

wait = WebDriverWait(browser, 4)

page=html.fromstring(browser.page_source)

for each in page.xpath("//div[@class='gl-i-wrap j-sku-item']"):

print('.',end='')

phone_id=each.xpath("./@data-sku")[-1]

price=each.xpath(".//div[@class='p-price']/strong[1]/i/text()")[-1]

comments=each.xpath(".//a[@class='comment']/text()")[-1]

phone_list.append(list((phone_id,price,comments)))

browser.close()

to_save=pd.DataFrame(phone_list)

to_save.to_csv('../data/phone_list.csv')

然后第二步的爬取,因为原代码爬取RAM和ROM的已经不能用了,1000+手机只能爬取到几十个数据(京东修改成机身存储和运行内存),所以自己新增了这两段爬取。同时前后的主摄像素也是相同的问题

list_temp=page.xpath("//dl[@class='clearfix'][./dt[text()='机身存储']]/dd/text()")

list_temp.insert(0,np.nan)

dic_temp['机身存储ROM']=list_temp[-1]

list_temp=page.xpath("//dl[@class='clearfix'][./dt[text()='运行内存']]/dd/text()")

list_temp.insert(0,np.nan)

dic_temp['运行内存RAM']=list_temp[-1]

list_temp=page.xpath("//dl[@class='clearfix'][./dt[text()='前摄的主摄像素']]/dd/text()")

list_temp.insert(0,np.nan)

dic_temp['front camera']=list_temp[-1]

list_temp=page.xpath("//dl[@class='clearfix'][./dt[text()='摄像头数量']]/dd/text()")

list_temp.insert(0,np.nan)

dic_temp['rear camera']=list_temp[-1]

list_temp=page.xpath("//dl[@class='clearfix'][./dt[text()='后摄的主摄像素']]/dd/text()")

list_temp.insert(0,np.nan)

dic_temp['rear camera specs']=list_temp[-1]

2.数据清洗

代码在'python'文件夹的data_clean.ipynb文件中。

获取到的数据包含1370行,23(21+2)列,每一行代表一款正在销售的手机,每一列包含关于手机的一项参数(比如价格,内存大小,像素,等等)。

获取到的数据大多为自然语言,非数值信息,对于分析十分不友好。所以数据分析的重点在于,找到实际上的缺失信息(如‘无’,‘参考官方数据’等都可认为是缺失数据NaN),使用re模块解析自然语言,提取其中有用的数值信息。

自己根据新增的无意义数据,增加了一行replace

#将无意义的数据定义为nan

data=data.replace('其它存储',np.nan).replace('无前置摄像头',np.nan).replace('无后置摄像头',np.nan)

然后,因为之前提到原先的RAM,ROM爬取代码,只能爬取到几十个数据,所以自己新增2列数:‘机身存储ROM’,'运行内存RAM',分别获得了637和579个数据。接着把‘RAM’和'‘ROM’缺失的值用新增的两列替换。

data['机身存储ROM']=data['机身存储ROM'].apply(clean_ROM)

data['运行内存RAM']=data['运行内存RAM'].apply(clean_RAM)

data['RAM'].fillna(data['运行内存RAM'], inplace=True)

data['ROM'].fillna(data['机身存储ROM'], inplace=True)

得到了

RAM 630 non-null float64

ROM 704 non-null float64

最后保存到csv,现在所有的数据都已经清洗完毕。进行下一步,数据分析

data.to_csv('../data/cleaned_data.csv')

3.数据分析

原作者使用python进行数据分析,但是笔者最近迷上用python进行数据预处理再用tableau进行分析。所以这里展示的是用tableau绘制的图。

3.1 主要手机厂商销售量对比

首先对主要手机厂商的销售量进行对比,用到扇形图。因为无法获得实际销售数量,这里使用商品评论数。可以发现根据京东数据,所有数据中销售量前7的是:苹果,华为,小米,Philips,Vivo,OPPO,诺基亚。本数据集包括从2015年到2019年9月之前上市的手机。

同时这里出乎意料的发现,Philips和诺基亚的手机销售额竟然还不低。后面根据两机的价格,发现这两种手机主要以功能机销售为主。

这里笔者又对比了2018年上市的各大厂商手机销售额。发现,苹果手机的销量大大减少。可见近几年国产手机的崛起之势。其中小米和华为的线上销售额增幅最大。

但是发现实际销售数据,VIVO,OPPO的销售量居第二第三。所以线下市场还是不容忽视的。

3.2 各大手机产商手机销售价格对比

发现和实际情况还是比较符合的。肾机一骑绝尘,三星出了爆炸门,加上zz公关后,基本上中国市场见不到了,所以只投放高端机在中国。第三就是华为了,中高端Mate,p系列,低端荣耀。总的来说,国内厂商除了华为,主要还是集中于中低端市场,价位在1000-3000不等。

3.3 价格,销售额和年月的关系

首先是价格,销售量和月份的关系。可以发现9月价格最高,销售量也最高,价格达到了5233.9元。结合实际情况的话,主要是因为苹果手机,华为mate集中在9月份上市。然后在3-5月也是有一波小高潮。这里的话,也是小米手机和华为P,荣耀系列发布的主要发布时间。

同时对主要几个厂商的手机销售价格逐年分析(做项目时9月新机还未发布),这边的话主要得出结果是苹果手机保值率还是偏高。

3.4 主要厂商价格段对比

探究了各大产商的手机价格分布。目前高端机型还是以苹果为主,华为也占有一定的市场。Oppo,Vivo也有部分4000+的产品,但是销量都不怎么样,O,V线下也主要以中低端机型为主。小米主要还是中低端市场,可以看到有几款爆款,销量可以达到1500K。

3.5 价格影响因素

这里主要想探究一下手机价格主要受产品哪些因素的影响。所以用seaborn的hotmap绘制了热力图。(emm,绘制出来,上下都会出现图的缺失,如果有朋友知道原因,可以评论,感激不尽)

通过观察,可以得出价格受各大因素的影响主要为:front camera-0.69,RAM-0.55,month-0.44,ROM-0.38,resolution-0.38,screen size-0.13,battery-0.11,weight-(-0.1)。

4.总结

这是笔者第一次发文,主要也是想总结一下整个项目的过程,如果有不足之处,也请指教。原作者还对手机价格进行预测,但是比较简单,所以就不复现了。

目前还是在读研究生,本硕都是供应链方向(工业工程,物流),以后也想往供应链优化,需求预测,数据分析方向发展。如果有相同职业发展规划的朋友,可以互相探讨。~

python手机销售系统_京东手机销售数据分析kaggle复盘python+tableau分析相关推荐

  1. 基于java的网上手机销售系统_网上手机销售系统的设计与实现(毕业论文).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp手机开发 网上手机销售系统的设计与实现(毕业论文).doc56页 ...

  2. 做一个python的旅游系统_我把全国旅游数据用Python爬下来后发现,这个地方才是真正的旅游胜地...

    前言: Python对于本人来讲也是一个在逐渐学习掌握的过程,这次的内容就从旅游开始讲起,进入正文前首先附(fang)上(du)最令我垂涎欲滴的海鲜盛宴. 数据爬取: 最近几天朋友圈被大家的旅行足迹刷 ...

  3. python爬取京东手机数据_实例解析Python如何实现爬取京东手机图片

    本文主要为大家分享一篇Python如何实现爬取京东手机图片的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧,希望能帮助到大家. 运行环境Python3.6.4#爬取京东手机图片i ...

  4. 销售订单_跨公司销售

    销售订单_跨公司销售 by 枫竹丹青 ⋅ Leave a Comment 一.说明 在由多个公司组成的企业集团中,通常会有一种跨公司销售业务,A公司与客户洽谈,在ERP系统中创建销售订单,但货物由B公 ...

  5. 华为什么机型可以使用鸿蒙系统,华为手机鸿蒙系统支持哪些手机型号-鸿蒙系统支持设备型号说明-红鼠网...

    华为手机鸿蒙系统支持哪些手机型号?关于鸿蒙系统的最新消息很多人都在实时关注着?很多小伙伴很好奇鸿蒙系统支持哪几款手机,下面就让红鼠网小编就带大家了解一下鸿蒙系统支持设备型号说明相关资讯吧. 华为表示, ...

  6. python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析

    这篇文章主要介绍了python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析的实例,帮助大家更好的理解和学习使用python.感兴趣的朋友可以了解下 一.环境准备 python3.8.3 ...

  7. 基于java的网上手机销售系统_基于SSH实现的网上手机销售系统+论文

    简介: 项目简介网上手机销售系统主要实现以下功能.本系统模块如下: 1,前台系统功能模块|--商品的展示模块              |--新品上架         &nb 项目简介 网上手 ...

  8. python爬虫怎么下载图片到手机_python爬虫获取京东手机图片的图文教程

    如题,首先当然是要打开京东的手机页面 因为要获取不同页面的所有手机图片,所以我们要跳转到不同页面观察页面地址的规律,这里观察第二页页面 由观察可以得到,第二页的链接地址很有可能是 https://li ...

  9. LG30刷小米系统_华为手机适合刷小米系统吗?

    都说小米的系统好,华为的设备好.做工好,那么用华为的手机刷小米的系统不是一个很好的方案吗?华为手机适合刷小米系统吗?这2个原因了解一下! 除了iOS之外,国内市场的智能手机基本上都是被安卓系统所垄断了 ...

最新文章

  1. java中jtextfield_java中的JTextField
  2. ES6的export与Nodejs的module.exports比较
  3. 基础理论:啥是分布函数CDF、啥叫联合分布?
  4. 解读容器 2019:把“以应用为中心”进行到底
  5. 吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程
  6. hadoop之 Hadoop1.x和Hadoop2.x构成对比
  7. python数据分析笔记——数据加载与整理
  8. 建立数据库的原则(怎样建立一个好的数据库)
  9. 在 dotnet runtime 的容器中安装 dotnet global tool
  10. 华为开发微信鸿蒙版,HUAWEI DevEco Studio
  11. 阿里巴巴黄贵谈存储新硬件带来数据库的机遇
  12. dj电商-需求分析-购物车模块与订单模块
  13. C#.NET验证码智能识别学习笔记---05C#.Net图片预处理
  14. header python 环境信息_通过Python扫描代码关键字并进行预警!这样就不会出BUG了吧?...
  15. 用tensorflow实现线性回归算法
  16. 【HDU 5965】扫雷【线性递推】
  17. 京瓷2010打印机苹果电脑能用吗_MacOS(苹果电脑苹果系统)连接京瓷300i 打印机...
  18. java知识点ppt背景图片_Java 给PPT幻灯片添加背景颜色和背景图片
  19. 【算法】牛和牛栏如何匹配到最大值
  20. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(1)

热门文章

  1. Dell Systems Management Tools download
  2. CNI 网络分析 4.4 Calico IPIP
  3. 第8章 - 异构系统的协同控制及最优控制 --> 最优控制
  4. 净现值、折现率、内部收益率、投资利润
  5. 红队信息收集自动化工具-水泽(ShuiZe)
  6. 2021跨保计算机实录(浙大软院、中山计院)
  7. 广工操作系统课设--多用户多级目录的文件系统
  8. LeetCode 309. 最佳买卖股票时机含冷冻期 | Python
  9. PAT——1121 Damn Single 甲级
  10. 月活用户突破2.39亿、还能表单买菜and在线千人大课……这个软件有点儿意思!