爬虫|爬虫京东Apple12部分销量数据可视化操作

【爬虫|爬虫京东Apple12部分销量数据可视化操作】
爬虫京东Apple12部分销量数据可视化操作

  • 整体过程
    • 爬虫部分
    • 爬虫生成excel文件代码
    • 数据可视化分析代码
    • 分析表格如下:

整体过程 爬取iphone12京东前十页评价相关内容,生成excel表格,进行数据可视化分析
爬虫部分
  1. 找到要爬取的url网页 ,调用requests库进行模拟浏览器请求访问;
  2. 利用防盗链User-Agent来辅助获取目标网页
  3. 将网页评价str类内容进行JSON格式内容替换
  4. 然后找到字典里所要爬取的键-key(主要爬取颜色,评价内容,手机内存)
  5. 将爬取的数据存储到excel当中进行保存为.xlsx文件
  6. 然后进行数据可视化分析 _绘制饼图更加直观方便看出哪种型号的手机销量更好
数据可视化分析
爬虫|爬虫京东Apple12部分销量数据可视化操作
文章图片

生成的Excel表格
爬虫|爬虫京东Apple12部分销量数据可视化操作
文章图片

爬虫生成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爬虫和数据可视化操作可以非常方便的辅助于我们的工作,可以说python虽然不能当主攻,但可以当个好助攻。

    推荐阅读