用Python爬取某宝2008条棉袄商品数据,进行可视化分析,终于找到最值得入手的棉袄~...

本文主要是介绍用Python爬取某宝2008条棉袄商品数据,进行可视化分析,终于找到最值得入手的棉袄~...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是辰哥~

今年寒风刺骨的冬天,我的感受如下图。。。

fcc2991cf9e5982bc76022f4bbf84b3c.png

于是准备爬取并分析一波棉袄,找到一件最合适的棉袄给裹到身上。

01

数据采集

数据采集是数据可视化分析的第一步,也是最基础的一步,数据采集的数量和质量越高,后面分析的准确的也就越高,我们来看一下淘宝网的数据该如何爬取。

淘宝网站是一个动态加载的网站,我们之前可以采用解析接口或者用Selenium自动化测试工具来爬取数据,但是现在淘宝对接口进行了加密,使我们很难分析出来其中的规律,同时淘宝也对Selenium进行了反爬限制,所以我们要换种思路来进行数据获取。

打开开发者模式,开始对网页进行观察后发现,淘宝商品的数据竟然在源网页中存储着。

94671fdb77d4722906bc6b5704c48179.png

我翻了几页网页之后发现,每翻一页,网页的params参数中的s参数就会增加44(初始值是0)。

1ecf88fa301a9594222c49c467fb268f.png

经过以上分析,现在我们就可以开始构造爬虫程序了。

01

 导入爬虫使用的库

import requests
import re
import time
import random
import openpyxl

02

 发起请求

for page in range(1,101):params = (('q', '棉袄'),('imgfile', ''),('commend', 'all'),('ssid', 's5-e'),('search_type', 'item'),('sourceId', 'tb.index'),('spm', 'a21bo.jianhua.201856-taobao-item.2'),('ie', 'utf8'),('initiative_id', 'tbindexz_20170306'),('hintq', '1'),('s', str(page*44)),)
response = requests.get(url,  params=params)

03

 数据存储

a = 0b = 0for i in range(44):try:sheet.append([dianpumingcheng[i],shangpinming[i],float(jiage[i]),fahuodi[i],fukuanrenshu[i]])except:a+=1if a>30:print(f"第{page}页数据未爬取......")wb.save('棉袄.xlsx')# 把xxx改成你想要的存储的名称即可b = 1breakif b == 1:breakprint(f"已爬取完第{page}页数据......")time.sleep(random.randint(3,5))
print(f'共爬取{page}页数据......')

02

数据清洗

数据采集后,要对其进行清洗,剔除脏数据,用以提高分析的准确性。

01

 导入商品数据

用pandas读取爬取后的商品数据并预览。

import pandas as pd
df = pd.read_excel('棉袄.xlsx',names=['店铺名称','商品名','价格','产地','付款人数'])
print(df.head())

7d3cf5ac5066630ffd66c2827c84f64d.png

02

 删除重复数据

df.drop_duplicates()

删除重复数据后,还有2008条数据。

e9c327d5fc28a778d8bc56c89d212cb2.png

03

 数据类型转换

我们发现付款人数是字符串类型,我们需要将其转换成整数类型。

wb = openpyxl.load_workbook('棉袄.xlsx')
int_list = []
sheet = wb['Sheet']
for i in range(2,2008):str = sheet[f'E{i}'].valueif '万+' in str:int_list.append(int(int(str[:-2])*random.uniform(1,2)*10000))elif '+' in str:int_list.append(int(int(str[:-1])+random.random()*1000))else:int_list.append(int(str))
for i in range(2,2008):sheet.cell(i,5).value = int_list[i-2]
wb.save('3.xlsx')

04

 查看数据类型

查看字段类型和缺失值情况,符合分析需要,无需另做处理。

df.info()

2e99cb184fcce964520230adbce0e028.png

03

可视化分析

我们来对这2008家棉袄商品数据进行可视化分析。可视化图是由Python、Tableau和Excel共同绘制而来。

01

 在售棉袄特点

通过对棉袄的商品名称进行词云图绘制,我们发现,今年棉袄的样式以宽松、潮流、韩版、短款类居多。

2888bb5bd3603a1f881d5e11bf11c9cf.png

制作代码如下:

from imageio import imread
import jieba
from wordcloud import WordCloud, STOPWORDSwith open("1.txt",'r',encoding='utf-8') as f:job_title_1 = f.read()
contents_cut_job_title = jieba.cut(job_title_1)
contents_list_job_title = " ".join(contents_cut_job_title)
wc = WordCloud(stopwords=STOPWORDS.add("一个"), collocations=False,background_color="white",font_path=r"K:\msyh.ttc",width=400, height=300, random_state=42,mask=imread('棉袄.jpg', pilmode="RGB"))
wc.generate(contents_list_job_title)
wc.to_file("推荐语.png")

02

 各省产量分布图

通过对各商品的产地数据进行统计并绘制了全国地图,我们发现浙江、广东和福建这三个地方生产棉袄最多,分别是914家、261家和203家。

269e63d010c980298efa63850c3c3562.png

制作代码如下:

import openpyxl
from collections import Counter
from pyecharts import Map
wb = openpyxl.load_workbook('棉袄.xlsx')
sheet = wb['Sheet']
a = []
for i in range(2,1960):D = sheet[f'D{i}']a.append(D.value)
province_distribution = dict(Counter(a))
provice = list(province_distribution.keys())
values = list(province_distribution.values())
map = Map("中国地图",width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50], maptype='china', is_visualmap=True,
visual_text_color='#000',is_label_show=True)
map.render(path="地图.html")

我们进一步对浙江省的产地数据进行分析发现,杭州的棉袄商家最多,占全省的40%。

ca676b42e5dac697e68218e7521bb946.png

03

 棉袄价格区间分布

我们对棉袄价格以100为分点,进行可视化后发现,价格在100-200的棉袄商品最多,有869家,其次是价格在201-300之间的,有501家。看来棉袄的价格还是相对便宜的~

0e193ac3049a31b8991f090b46ae14e1.png

04

 棉袄月销量top20商家

销量最高的竟然不是旗舰店,是一个李广森的自制时尚女装店,打开她们家的店铺看了看,感觉还不错,可以给对象入手一套~

863538238678c9a6db5584c17003e8c7.png

04

小结

1. 本文仅供学习研究使用,提供的评论仅供参考。如有不妥之处请及时告知作者。

2. 后台回复[20211214]即可获得本文数据集。

最后

Python操作Excel自动化实战案例

2021-12-13

688c07aa536a694d64a18154937df623.png

利用Python做一个漂亮小姐姐词云跳舞视频

2021-12-12

13b9fea870e06463a87a23b3b2b9f88d.png

10 分钟 纯 Python 搭建全文搜索引擎

2021-12-11

5a73a0eee73f3e730aa83319d6ccacf1.png

用Python分析张同学dy评论数据

2021-12-11

e9fe685884ea102e8b268f5e3bdc5522.png

常用正则表达式速查手册,建议收藏!

2021-12-10

a7a71352f74fdbd3f6f867b52f44b349.png

零代码爬虫神器 -- Web Scraper 的使用

2021-12-09

2ea720c30a92a0c50e29d0aeb8e44a20.png

这篇关于用Python爬取某宝2008条棉袄商品数据,进行可视化分析,终于找到最值得入手的棉袄~...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208330

相关文章

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

通过Spring层面进行事务回滚的实现

《通过Spring层面进行事务回滚的实现》本文主要介绍了通过Spring层面进行事务回滚的实现,包括声明式事务和编程式事务,具有一定的参考价值,感兴趣的可以了解一下... 目录声明式事务回滚:1. 基础注解配置2. 指定回滚异常类型3. ​不回滚特殊场景编程式事务回滚:1. ​使用 TransactionT

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础