京东全网手机爬虫scrapy_redis及决策树数据分析

参考了实验楼并进行延伸

SqlServer版本:13.0.1742.0 (也可使用mongodb)
Python版本3.7.1
软件:Pycharm , Navicat , SSMS,RedisDesktopManager

项目架构:

爬虫scrapy_redis框架:Jdphone
jd_category.py (手机分类的名称以及网址) jd_product.py(手机详细信息)
数据分析:test
data_clean.py 清洗数据 analysis.py 图表分析
DesicionTree.py 决策树预测 GraphvizTree 决策树可视化
数据库表:
phone_url.sql phone_info.sql 清洗后:phone_info_cleaned.csv

京东手机销售数据分析:(回归CART)

第一步:爬虫爬京东手机各项数据(品牌,屏幕材料,内存,存储空间,电池容量
摄像头数,屏幕大小,评分,价格,评论数等)
第二步:存储到SqlServer数据库,转换输出成csv文件进行分析
第三步:通过pandas清洗数据,统计csv文件各类属性的数量
第四步:通过matplotlib以图表的形式可视化分析
第五步:用回归决策树(Regression Decision Tree) 预测 品牌,重量,评论等属性对价格的影响

问题及解决方案:

1.爬虫抓取手机参数,价格和评论写在动态js里,而其他属性大多在html里用xpath可以抓取。两个要同时兼并,最后把js的url写到html方法进行返回从而抓取。
2.保存数据到SqlServer数据库,之前保存到MongoDB全部当字符串即可,而sql需要考虑是否空值,如果强行获取不能存入数据库。还有pyssml模块导入由于python版本问题会有警告问题,可以忽略。(提前在数据库中建好表,再用insert语句插入)
3.数据清洗,首先把数据库文件以csv形式导出,然后用pandas和numpy对数据进行规范,因为决策树回归算法等需要用数值型,所以要把字符型转换,同时剔除无关词汇,思路简单但过程繁琐。
4.数据分析,数据项太多比如品牌 以至于图可能信息展示不完全。
5.运用决策树预测分析,由于部分数据为空以及差异太大,比如价格低至-1,高至4w,导入部分品牌平均绝对误差可能会大,但是绝大部分都在正常范围。

爬取:(7853, 25)
7853条手机数据,25条属性
分析:

品牌词云图

品牌饼图

结论:网商市场占比 华为>apple>飞利浦>小米>vivo>opple
和线下销售情形基本符合

属性关联度影响热图

结论: 此图只考虑了数值类属性,未考虑字符串如 年份 品牌 等
与价格关联度最高的有 好评率0.77 差评率0.7 评论数0.64 (可以都理解为评论数)
其他属性如 摄像头数 0.66 运行内存RAM 0.45 物理内存ROM 0.45
而 屏幕大小 重量 和 长度这些因素对价格的影响没有那么大

手机品牌对应价格图
结论:根据手机价格中位数来大致估计各品牌。
价格最高的是Vertu(奢侈品)–25000
偏高的有 8848 gemry(詹姆士) royole(柔宇) vetas kreta --均价12000 (轻奢)
大众品牌:苹果 --7000 华为 --3000 一加–4000 三星–6000 vivo–2000
而像 诺基亚 菲利普 这种品牌大多都是老人机 和我们固有的印象相符,平均价格在200,300左右


屏幕材料对应价格图

结论:从手机屏幕材料对应手机价格来判断关联度,如图示
价格依次排序:
OLED折叠屏–28000 XDR AMOLED-- 15000 a-si LCD --14000
Dynamic AMOLED (三星)–7000 OLED(华为) - 4000
LCD (vivo/小米) / LTPS (华为)–2000 IPS–1000 TFT(荣耀)–500


部分屏幕材料对应价格图
结论:由上图总结抽选了部分代表来分析价格分布。红色部分为IPS和TFT,这些材料大多应用于像诺基亚这种老年机和华为的低端机,基本价格都在1000多,而绿色部分为Dynamic AMOLED,对应的是三星这种屏幕好的手机,大多价格在4000多,而蓝色部分对应的是OLED ,对应的是苹果手机平均价格在7000左右,这和我们平常的认知相符。

通过DecisionTreeRegressor回归树分析一下模型的平均误差:
(总数据大概为7800条,下图为缺失数据,由上文中热图属性来分析重要属性,运存和内存缺失了三分之一,摄像头数缺失一半,评论虽然未缺失,但是未处理0这个数据可能会造成误差)

分析准确性:(以品牌为索引,分析其他属性对价格影响的平均误差率)
1.总评论数 和 好评数 以及重量的影响误差:
大部分误差都小于百分之十,说明评论和重量对价格的影响切实有效

2.运存 和 内存 的影响误差:

结论:可能因为运存和内存缺少数据二分之一太多,导致误差变大。

可视化

京东全网手机爬虫scrapy_redis及决策树数据分析相关推荐

  1. 京东商城手机爬虫和数据分析项目

    文章目录 数据分析效果图 抓取评论的关键字 抓取原理 运行环境 前置库 使用方法 爬取脚本SpiderScript.py 数据处理脚本JDComment_Processing.ipynb 数据处理 代 ...

  2. 爬虫之京东5g手机爬虫+谷歌浏览器打开窗口使用

    爬取详细书籍数据信息 #coding:utf-8 501开始到1010 c=23 1001到1520 c=43 1501到2020 c=63 import requests ,re,json,pand ...

  3. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储...

    http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...

  4. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

    1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有 ...

  5. 基于京东手机销售数据用回归决策树预测价格

    今天给大家推荐一个数据分析与挖掘的实战项目案例"基于京东手机销售数据用回归决策树预测价格".该项目先基于京东手机销售数据做出一系列分析后,利用回归决策树仅根据手机外部特征进行价格预 ...

  6. urllib库学习 - 京东商城手机图片爬虫

    概述 使用urllib和re模块爬取京东商城手机分类下的所有图片 思路: 1.通过for循环控制每一页的爬取,并组合每一页的url url="https://list.jd.com/list ...

  7. Python爬虫编程思想(70): 项目实战--抓取京东商城手机销售排行榜

    本文的例子使用requests抓取京东商城手机销售排行榜,并使用pyquery和CSS选择器提取相关的信息,同时将这些信息保存到Excel文件中.本例抓取总排行榜,并单独提取Apple.华为和小米手机 ...

  8. 使用python的requests+bs4 实现京东的手机商品数据收集

    学习python有一段时间了,今天写写对京东的手机商品数据收集,权当练手,留个档 环境 win10.python3.7.pycharm 一.分析接口 在京东搜索手机这一标签,获得搜索主页面的url为 ...

  9. python操作手机京东_Python实现自动上京东抢手机

    本文实例为大家分享了Python自动上京东抢手机的具体代码,供大家参考,具体内容如下 上次抢荣耀V9,被京东给恶心到了,所以就写了个简单的Python来自动抢V9.虽然用的是比较蠢的方法,但觉得还是有 ...

最新文章

  1. nullptr was not declared怎么解决_剑桥少儿英语考试语法怎么学?一套《Grammer Friends和语法做朋友》:这样学语法,孩子学得会、记得住!...
  2. vue实现简单表格组件
  3. springboot 使用interceptor 返回前端http状态码为0
  4. shell 脚本从1加到100
  5. ninjala还是显示服务器维护,Ninjala更新2.0版本 调整了武器平衡以及BUG修复
  6. java rails orm_php 模拟 rails 中的 ActionRecord 的 ORM (一)
  7. php diff 文本比较,php文本操作方法集合比较
  8. ELK 把date替换为logstash的@timestamp
  9. myeclipse中tomcat热部署设置
  10. 《编程之道》(转载) 全文
  11. Xcode 9中模拟器的位置
  12. JAVA.犹抱琵琶半遮面
  13. android把音乐存到sd卡上,如何将音乐文件从原始文件夹保存到SD卡中android
  14. brand.php dnfire.cn_火灾报警系统品牌
  15. 网银互联获杭州市云计算协会理事单位授牌
  16. 猫的计算机相关的网络语言,辟谣:猫咪的语言是喵?教你读懂“猫言猫语”,让你明白猫的内心...
  17. 数学速算法_三年级数学时分秒换算口诀+精选思维奥数题整理汇总
  18. DNS-域名服务器(原理分析)
  19. 被隔离后,到手的offer没了:疫情下的2020年,我们都过得太难了
  20. 2021暨南大学计算机考研经验贴(跨考)

热门文章

  1. 手机PDF文件怎么转为电子书
  2. python if else用法筛选出成绩不及格的学生的姓名_多个成绩筛选出不及格 用Excel条件格式给成绩不及格同学亮黄牌...
  3. 多渠道整合开始NGBOSS第一步——TmaxSoft谈运营商统一接口平台建设和管理
  4. 错误: 找不到或无法加载主类 Application
  5. CH438Q芯片详细解读
  6. 中东政策_中东游戏的简要历史
  7. 【Vue】仿小米商城系统(一)
  8. 各种进制转换最简单总结(附任意进制转换代码)
  9. a8处理器相当于骁龙几_世界十大手机处理器排行榜公布!苹果A12处理器排名榜首...
  10. 这可能是我见过最好的 NumPy 图解教程!