【爬虫|爬虫京东Apple12部分销量数据可视化操作】
爬虫京东Apple12部分销量数据可视化操作
- 整体过程
-
- 爬虫部分
- 爬虫生成excel文件代码
- 数据可视化分析代码
- 分析表格如下:
整体过程 爬取
iphone12
京东前十页评价相关内容,生成excel表格,进行数据可视化分析爬虫部分
- 找到要爬取的url网页 ,调用requests库进行模拟浏览器请求访问;
- 利用防盗链User-Agent来辅助获取目标网页
- 将网页评价
str类
内容进行JSON格式
内容替换 - 然后找到字典里所要爬取的键-key(主要爬取颜色,评价内容,手机内存)
- 将爬取的数据存储到excel当中进行保存为
.xlsx文件
; - 然后进行数据可视化分析 _绘制饼图更加直观方便看出哪种型号的手机销量更好
爬虫生成excel文件代码
文章图片
生成的Excel表格
文章图片
# -*- coding: utf-8 -*-
# @Time: 2021/9/7 9:04
# @Author: LJH
import requests
import json
import time
import openpyxl
from bs4 import BeautifulSoup
from urllib.parse import quote #转换中文的工具def get_comments(productId,page):
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0;
Win64;
x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36"
}
url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId={0}&score=0&sortType=5&page={1}&pageSize=10&isShadowSku=0&fold=1".format(productId,page)
#url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100004770263&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1"
resp = requests.get(url,headers=headers)
print(resp.text)
s = resp.text.replace('fetchJSON_comment98(','')
s = s.replace(');
','')
# 替换完成后将str类数据转换为JSON数据
Json_data = https://www.it610.com/article/json.loads(s)
return Json_datadef get_max_page(productId):
dic_data = get_comments(productId,0)
max_page = dic_data["maxPage"]
return max_pagedef get_info(productId):
#max_page = get_max_page(productId)
max_page = 10
lst = [] # 用来存取提取到的商品数据
for page in range(1,max_page+1):
dic_data = https://www.it610.com/article/get_comments(productId,page)
comment_lst = dic_data['comments']
for item in comment_lst:
content = item["content"]
productColor = item["productColor"]
productSize = item["productSize"]
lst.append([content,productColor,productSize])
time.sleep(3)
save(lst)#用于将爬取的数据存储到excel当中
def save(lst):
wk = openpyxl.Workbook() #创建工作簿对象
sheet = wk.active#获取活动表
for i in lst:#将列表中的数据添加到活动表中,列表中一条数据在excel中是一行
sheet.append(i)
#将工作簿保存至磁盘上
wk.save("京东Apple销售数据.xlsx")
#测试
if __name__ == '__main__':
productId = 100004770263
page = 0
#print(get_comments(productId,page))
# print(get_max_page(productId))
get_info(productId)
数据可视化分析代码
# -*- coding: utf-8 -*-
# @Time: 2021/9/7 11:11
# @Author: LJH#数据可视化分析使用pandas比较好
import openpyxl
import matplotlib.pyplot as pit#从excel中读取数据
wk = openpyxl.load_workbook("京东Apple销售数据.xlsx")
sheet = wk.active #获取活动表sheet#获取最大行数和列数
rows = sheet.max_row#100行
cols = sheet.max_column#3列lst = []
for i in range(1,rows+1):
size = sheet.cell(i,3).value
lst.append(size)
# for i in lst:
#print(i)
"""数据统计 用字典内存作key,数量作value"""
dic_size = {}
for i in lst:
dic_size[i] = 0
for i in lst:
for size in dic_size: #遍历字典
if size == i:
dic_size[size]+=1
break#碰到相同键key加1
for i in dic_size:
print(i,dic_size[i])
#做百分比
lst_total = []
for i in dic_size:
lst_total.append([i,dic_size[i],dic_size[i]/100*1.0])
for i in lst_total:
print(i)
'''数据统计完毕,开始进行数据可视化——画饼'''
labels = [i[0] +'内存'for i in lst_total]#使用列表生成式得到饼图的标签
fraces = [i[2] for i in lst_total]
pit.rcParams['font.family'] = ['SimHei']
pit.pie(x=fraces,labels=labels,autopct='%1.1f%%')
# pit.show()
pit.savefig("京东Apple销售数据.jpg")
分析表格如下:
内存 | 百分比 |
---|---|
64G | 22% |
128G | 70% |
256G | 8% |
推荐阅读
- 图像增强|Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)
- 计算机视觉|Python图像增强(一)--imgaug
- dobot机械臂|Dobot机械臂的Python Demo
- java|Vue 2.7 正式发布,代号为 Naruto
- Python 项目管理与构建工具(CookieCutter, PyScaffold, PyBuilder, Poetry)
- Python 微服务框架 Nameko 初体验
- python|Linux系统Python虚拟环境管理软件pyenv
- Whoosh(Python 的轻量级搜索工具)
- 程序员合集|Pygame实战(升级后的2048小游戏—解锁新花样,根本停不下来【附源码】)