数据分析【1】

  • 项目介绍
    • 技术背景
    • 数据说明
    • 数据获取---Python爬虫
    • 数据分析---Excel
      • Excel数据分析总结
    • 数据分析---Tableau
    • 总结

项目介绍

本次项目是我个人学习之后的实战项目,应该会分为几个阶段对应自己学习的进度,主要是做关于数据分析的,包括数据获取、可视化分析、预测等等。本篇文章是在学习了PythonExcelTableau等相关技术后对淘宝软件进行爬虫华为和vivo两款手机的销售数据并进行可视化分析

技术背景

  • 数据来源:淘宝网
  • 数据获取:Python爬虫Selenium自动化测试
  • 可视化分析:ExcelTableau

数据说明

本次爬取所得的数据有些粗糙,共1800+条数据,包括了vivo和华为手机的部分销售数据,话不多说,直接上图:

数据获取—Python爬虫

本来想上网查找数据进行简单的可视化分析就行了的,但是发现没有合适,数据就是金钱啊!那就爬!由于需要爬取多条数据,人为的手动分析爬取可行性并不是很高,所以引用了Selenium自动化测试模块,需要注意的就是chromedriver的下载和路径的配置,网上很多教程,自行搜索即可。

首先来分析一下页面数据,F12打开开发者工具,就会发现所有的数据都是在一个items标签下,再往下看,就会发现所有想要的数据都会有一个标签或者父标签,当然,你选择其他标签也是可以的,根据自己的需求改就行,如下图:

接下来,不需要重复造轮子(当然前提是你懂了)直接上代码:

# 导入模块
from selenium import webdriver
import time
import csv
import refrom selenium.webdriver.common.by import By# 搜索商品,获取商品页码
def search_product(key_word):key_word += "手机"# 定位输入框browser.find_element(By.ID, "q").send_keys(key_word)# 定义点击按钮,并点击browser.find_element(By.CLASS_NAME, 'btn-search').click()# 最大化窗口:为了方便我们扫码登录淘宝browser.maximize_window()# 等待15秒,给足时间我们扫码登录time.sleep(15)# 定位这个商品“页码”,获取到“共100页“这个文本page_info = browser.find_element(By.XPATH, '//div[@class="total"]').text# 需要注意的是:findall()返回的是一个列表,虽然此时只有一个元素它也是一个列表。page = re.findall("(\d+)", page_info)[0]print(key_word + "有" + str(page) + "页信息,请问需要爬取多少页?")page = int(input("请输入需要爬取的页面: "))return page# 获取商品信息数据
def get_data():# 通过页面分析发现:所有的信息都在items节点下items = browser.find_elements(By.XPATH, '//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')for item in items:# print(item)# 店铺名称shop_name = item.find_element(By.XPATH, './/div[@class="shop"]').text.strip()# 参数信息pro_desc = item.find_element(By.XPATH, './/div[@class="row row-2 title"]/a').text# 价格pro_price = item.find_element(By.XPATH, './/strong').text# 付款人数buy_num = item.find_element(By.XPATH, './/div[@class="deal-cnt"]').text[:-3]# 简单的处理销售人数格式if "+" in buy_num:buy_num = buy_num.replace("+", "")# 地区location = item.find_element(By.XPATH, './/div[@class="location"]').text# 保存到csv文件with open('{}手机.csv'.format(key_word), mode='a', newline='', encoding='utf-8-sig') as f:csv_writer = csv.writer(f, delimiter=',')csv_writer.writerow([shop_name, pro_desc, pro_price, buy_num, location])def main():# 浏览器要获取的链接browser.get('https://www.taobao.com/')# 要获取的关键字page = search_product(key_word)print("开始爬取:")page_num = 0while page != page_num:print("*" * 60)print("正在爬取第{}页".format(page_num + 1))# 爬取页面browser.get('https://s.taobao.com/search?q={}&s={}'.format(key_word, page_num * 44))browser.implicitly_wait(15)get_data()page_num += 1print(key_word + "手机数据爬取完毕!")if __name__ == '__main__':key_word = input("请输入你要搜索的手机品牌:(输入Q/q停止)")while key_word != 'Q' and key_word != 'q':browser = webdriver.Chrome()main()key_word = input("请输入你要搜索的手机品牌:(输入Q/q停止)")

当然,你也可以选择点击进每个手机主页,获取它更加详细的信息,包括购买时间、评论等等,但是那么多条数据,一个一个点进手机主页,想想就应该很吃电脑性能,所以……不过,这也是我下一个阶段要解决的事情,可以期待一下。

数据分析—Excel

获取数据了之后就应该是数据分析了(应该还有数据清理这些的,但是咱们这个数据比较简单,我经过简单的处理就可以直接用了),这次是先用Excel进行数据分析,其实用Excel做数据报表的可能会多一些,咱们这次就简单做一做,巩固知识

大家做数据分析之前,要养成一个保存源数据的良好习惯。这次的Excel数据分析,我用的大多是函数编写,用数据透视表分析也可以,根据自己的需求来,学习阶段,咱们尽量用自己学习的知识来进行实践,打好基础,后续偷懒更方便。我做的功能包括一个联动筛选,会根据源数据或者你所选择的数据变化而变化,还有Sumprodunct的多条件求和、Index+Small+If+Row一对多函数查询显示多结果【这个会很影响电脑性能,后续会改进】等等。实现了就不同品牌在销量、营收额、不同产品价格区间受欢迎程度及爆款机型等各方面进行对比分析。说着比较抽象,直接上图讲解!

它会根据品牌的选择实现联动筛选。

Excel的数据分析主要就是函数的嵌套使用,根据自身的需求结合不同的函数能够得到不一样的结果,最常见的有vlookup、sumproduct、sumif、index+match等,有不会的直接百度都能出来。主要是熟悉Excel各个功能的使用,对数据进行合适的可视化分析。

Excel数据分析总结

通过以上图表可以看出,在淘宝软件上,华为手机产品无论是在销售额上还是占有量上都远远超于vivo手机品牌。其中销量超过500万的店铺共有14家华为独占了11家并且5家销量超千万,可以看出人们更加中意华为手机产品,也可以猜想华为手机产品可能在性价比、售后服务等方面优于Vivo手机品牌。从图表中更可以看出华为与vivo他们的销量与营收大体一致,都接近1:1的比例,并且用户在两家的产品上都更加倾向于价格3500+以上的产品,但是3000-3500价位的机型销量几乎倒数,可以猜想人们在价格与性能上更加倾向性能较好的产品。但值得注意的是,销量超过1w+的机型只有一款,说明两家手机产品还有很大的进步空间,应该打造更具有性价比的产品,营造多点开花的市场格局。同时,他们都应该扬长避短,铸造出属于自己的品牌文化。

数据分析—Tableau

个人认为在可视化分析上,Tableau更优于Excel,更加简单便捷,当然两者要结合场景来使用,发挥其优势。在Tableau的数据分析中,我主要是实现了两个品牌全国不同产地的销量分布、官方店铺和第三方店铺销售额对比分析、价位销量分析、不同品牌销售额占比及各个机型价位的对比分析。有些地方会与Excel分析重复,因为我最初是按照两个软件单独实现分析来做的。

上图是Tableau数据分析的一个仪表盘,可以更直观的看出两个品牌数据分析的各个分析结果。

从上混合地图可以看出,全国手机产地主要集中在广东、浙江、上海等沿海发达地区,其中广东省的数据表现领跑全国销售额更是达到了4.9亿元,而广西只有6千不到,还有许多地区甚至没有销量,也侧面反应了广东省软实力的雄厚

从上图可以看出用户在产品上更加倾向于价格3500+以上的产品,但是3000-3500价位的机型销量几乎倒数,可以猜想人们在价格与性能上更加倾向性能较好的产品

从上饼图可以看出,顾客大多数还是喜欢从第三方店铺购买手机,而不青睐与官方旗舰店。vivo用户的从官方旗舰店购买的比例甚至只占12%,可以推断出该官方旗舰店有需要改进的地方,比如客服回复速度、物流情况、售后保修等等,当然也不排除第三方店铺数量庞大的情况。

这是利用销量超500万机型做的一个爆款机型词云,可以看出最受欢迎的是华为Mate50手机。可以用Python来做这个词云会更好一些。

总结

这次的数据分析可以看出华为与vivo两款品牌在销量、爆款机型、用户不同价位的选择及不同地区销售额等方面的差距与相关信息,也表明了两家手机品牌在不同方面存在的问题,比如官方店铺占有量为啥远远少于第三方店铺、不同机型营销差距为何那么大等,他们应该打造更具有性价比的产品,营造出多点开花的市场格局。同时,铸造出属于自己的品牌文化。

最后我想说的是无论是Excel、Tableau还是Python也好,他们都只是一门工具,你熟练掌握他只是为了更好的实现业务需求,更重要的是分析数据的思维能力,这个是区分你能力的主要指标。

当然,这次数据分析还有很多值得优化的地方,后期也会不断的持续更新,欢迎关注!

Python爬虫ExcelTableau可视化数据分析相关推荐

  1. python爬虫及其可视化

    一.思路分析 本文采用比特币网站作为爬取目标(https://www.ibtctrade.com/),从中获取prices.CNY.市值等,然后导出所得到的数据到excel.sqlite数据中.使用p ...

  2. python3爬虫及数据分析_Python3爬虫及可视化数据分析系列图文教程——大纲目录...

    本文首发于:Python3爬虫及可视化数据分析系列图文教程--大纲目录 - Python量化投资​www.lizenghai.com 写在最前 最近更新:2019-03-28 本教程所有源码见文尾. ...

  3. python爬虫+Flask可视化展示

    python爬虫+Flask可视化展示 废话不多说直接上代码,详细解释,让小白也能操作 爬虫部分(含有json请求返回的价格,销售量,好评率,评论等) 爬去某东笔记本电脑920页,每页60条自己算 # ...

  4. Python爬虫数据可视化

    Python爬虫--数据可视化 导入需要的第三方库 import matplotlib.pyplot as plt import seaborn as sns import pandas as pd ...

  5. Python爬虫数据分析毕业论文,Python爬虫数据可视化

    如何用Python爬虫抓取网页内容? 爬虫流程其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤模拟请求网页.模拟浏览器,打开目标网站.获取数据.打开网站之后,就可以自动化的获取我们所需要的网站数据. ...

  6. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  7. python爬虫数据可视化软件_python爬虫及数据可视化分析

    1.前言 本篇文章主要介绍python爬虫及对爬取的数据进行可视化分析,本次介绍所用的网站是(https://www.duanwenxue.com/jingdian/zheli/) 2.数据爬取 2. ...

  8. 从Python爬虫小白进阶数据分析大神,必看的10本书

    导读:吾日三省吾身,过年胖了吗?情人节过了吗?发际线还好吗?别想这么多啦,程序员和数据科学家的世界里,只有Python值得你费脑子!今天为大家准备了10本数据分析相关好书,助你早日成为Python大神 ...

  9. python爬虫与文本数据分析 系列课

    在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而是数据科学家,尤其是社会科学家,涵盖的学科有经济学.管 ...

最新文章

  1. 虚拟机管理你的服务器,全面解析VMware的虚拟机管理解决方案
  2. Android保存图片到数据库,从数据库取图片的方法
  3. JavaWeb课程复习资料(四)——创建Servlet
  4. 2018-2019-1 20165201 实验五 通讯协议设计
  5. Java中的Enum的使用与分析
  6. 信息学奥赛一本通(1209:分数求和)
  7. 开发者如何钻 App Store 的漏洞?
  8. JAVA之继承的必要性
  9. LC60 Permutation Sequence
  10. 2018尚硅谷大数据视频_韩顺平_Linux视频教程
  11. 日本家用电器技术标准及IEC对照介绍
  12. Python压缩图片到指定大小
  13. 计算机电源插座安装,弱电箱里的插座 介绍及安装方法
  14. PUE 1.2,总投资达36.4亿,17600个机柜!天和防务拟建陕西最大数据中心
  15. 提交测试流程和【开发提测申请模板】
  16. javascript打印直角三角形四种情况
  17. 光脚丫学ASP.NET MVC(0006):操作方法概述
  18. 手机号校验正则校验格式
  19. 懒汉模式-双重同步锁机制
  20. 同源基因功能注释:pfam-COG-eggng-COG

热门文章

  1. 俞敏洪:我为什么要每天读书?
  2. 区块链2月创投:横跨春节,资本不眠
  3. 什么是软文营销?为什么要做软文营销?
  4. Spring Boot自定义启动Banner
  5. 戴尔笔记本键盘,fn+f1/fn+f2快捷键如何取消按fn键
  6. 女生java_女生适合选JAVA后端吗?
  7. excel支持2013版本和2017版本
  8. 【PAT乙】2022秋季赛后总结
  9. 【超硬核】人脸剪裁、录音、摄像、头像修改、预览图像【宝藏级】
  10. 突破次元壁,AIGC从玩具到工具的跨世纪进阶