淘宝商品数据爬取商品信息采集数据分析API接口详细步骤展示(含测试链接)

01 数据采集

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

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

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

图片

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

图片

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

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())

图片

02 删除重复数据

df.drop_duplicates()

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

图片

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()

图片

03 可视化分析

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

01 在售棉袄特点

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

图片

制作代码如下:

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家。

图片

制作代码如下:

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%。

图片

03 棉袄价格区间分布

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

图片

04 棉袄月销量top20商家

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

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/708542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端css、js、bootstrap、vue2.x、ajax查漏补缺(1)

学到的总是忘,遇到了就随手过来补一下 1.【JS】innerHTML innerHTML属性允许更改HTML元素的内容可以解析HTML标签 2.【CSS】display: none 设置元素不可见,不占空间,约等于将元素删除一样,只是源代码还存在 3.【CSS】行内样式 4.【…

工作微信统一管理(还带监管功能)

1.会话页面(可统一管理多个微信号、聚合聊天、手动搜索添加好友、通过验证请求、查看好友的朋友圈等) 2.聊天历史(可查看 所有聊天记录,包括手机.上撤回、删除的消息) 3.群发助手(可以一 -次群发多个好友和群,还可以选择定时发送,目前还在内测…

PlantUML简介

PlantUML简介 plantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图等图形的绘制。你可以在IDEA中安装插件来使用PlantUML, 或者在Visual Studio Code中安装插件。 也可以在dra…

使用npm i命令时一直idealTree:npm: sill idealTree buildDeps卡住不动

1.清除缓存 npm cache verify2.设置镜像源 npm config set registry https://registry.npmmirror.com3.查看是否设置成功 npm config get registry4.运行 npm i⚠️⚠️⚠️注意如果执行以上操作还是不行的话再执行以下命令⚠️⚠️⚠️ 关掉strict-ssl即可 npm config s…

数据库|三地五中心,TiDB POC最佳实践探索!

目录 一、POC测试背景 //测试环境信息 二、流量单元化控制 //需求 //解决方案 三、跨城获取TSO的影响与探索 //问题描述与初步分析 //优化方案 四、灾难恢复与流量切流 //需求 //pd leader 切换 //region leader t切换 五、写在最后 一、POC测试背景 在某地震多发省…

sylar高性能服务器-日志(P43-P48)内容记录

文章目录 P43:Hook01一、HOOK定义接口函数指针获取接口原始地址 二、测试 P44-P48:Hook02-06一、hook实现基础二、class FdCtx成员变量构造函数initsetTimeoutgetTimeout 三、class FdManager成员变量构造函数get(获取/创建文件句柄类&#x…

mongoDB 优化(1)索引

1、创建复合索引(多字段) db.collection_test1.createIndex({deletedVersion: 1,param: 1,qrYearMonth: 1},{name: "deletedVersion_1_param_1_qrYearMonth_1",background: true} ); 2、新增索引前: 执行查询: mb.r…

火灾安全护航:火灾监测报警摄像机助力建筑安全

火灾是建筑安全中最常见也最具破坏力的灾难之一,为了及时发现火灾、减少火灾造成的损失,火灾监测报警摄像机应运而生,成为建筑防火安全的重要技术装备。 火灾监测报警摄像机采用高清晰度摄像头和智能识别系统,能够全天候监测建筑内…

TDengine 研发分享:利用 Windbg 解决内存泄漏问题的实践和经验

内存泄漏是一种常见的问题,它会导致程序的内存占用逐渐增加,最终导致系统资源耗尽或程序崩溃。AddressSanitizer (ASan) 和 Valgrind 是很好的内存检测工具,TDengine 的 CI 过程就使用了 ASan 。不过这次内存泄漏问题发生在 Windows 下&#…

JVM的深入理解

1、JVM(Java虚拟机):我们java编译时候,下通过把avac把.java文件转换成.class文件(字节码文件),之后我们通过jvm把字节码文件转换成对应的cpu能识别的机器指令(翻译官角色&#xff09…

【国产MCU】-CH32V307-I2C控制器

I2C控制器 文章目录 I2C控制器1、I2C模块介绍2、I2C驱动API介绍3、I2C使用实例3.1 主模式3.1.1 主设备发送模式和主设备接收模式3.1.2 DMA方式发送3.2 从模式内部集成电路总线(I2C)广泛用在微控制器和传感器及其他片外模块的通讯上,它本身支持多主多从模式,仅仅使用两根线(…

【小沐学QT】QT学习之信号槽使用

文章目录 1、简介2、代码实现2.1 界面菜单“转到槽”方法2.2 界面信号槽编辑器方法2.3 QT4.0的绑定方法2.4 QT5.0之后的绑定方法2.5 C11的方法2.6 lamda表达式方法 结语 1、简介 在GUI编程中,当我们更改一个小部件时,我们通常希望通知另一个小程序。更普…

c++ function函数用法

function函数写法 function<返回值类型(参数一类型,参数二类型,...)> 函数名 [选择值传递&#xff0c;引用传递等](参数类型 形参名,参数类型 形参名, ...) -> 返回值类型{... };1. void返回值类型调用 举例 function<void(int)> dfs [&](int node) ->…

JavaScript的书写方式

JavaScript的书写方式 目前较为流行的是第二种和第三种&#xff0c;第一种很少见。在第二种和第三种推荐使用第三种&#xff0c;因为在日常开发/工作中&#xff0c;第三种是最为常见的 1.行内式 把JS代码嵌入到html元素内部 示例代码 运行效果 由于JS中字符串常量可以使用单引…

搜维尔科技:CATIA为建筑、基础设施和城市规划提供虚拟孪生力量

超越传统项目交付方法限制的协作 复杂建筑和基础设施项目开发的设计和工程流程需要多个利益相关者和所有项目阶段的密切合作。此外&#xff0c;日益复杂的施工项目要求所有团队都依赖 CATIA 和3D EXPERIENCE 虚拟孪生技术作为“通用语言”&#xff0c;以促进协作并减少阶段之间…

K8S(kubernetes) 部署运用方式汇总

k8s 部署运用这边汇总两类&#xff0c;第一种是命令版本。第二种是文本版本&#xff0c;通过创建yaml文件方式。 此次目标&#xff1a;通过k8s创建nginx,端口80并且可以被外网访问。 kubectl get namespaces 一、创建命名空间 首先创建一个命名空间&#xff0c;有了命名空间后…

paimon表读优化-Read-optimized Table

目录 概述实践文档测试 结束 概述 paimon 版本 : 0.7 测试目标: 类似 hudi ro 表 实践 文档 Read-optimized Table 测试 0: jdbc:hive2://10.32.36.142:10009/> select * from trace_log_refdes_hive_ro$ro limit 10;24/02/28 14:24:33 INFO ExecuteStatement: Execu…

获取tensorflow lite模型指定中间层的输出

以mobilenet v2为例子&#xff0c;我已经训练好了模型&#xff0c;有tflite格式和onnx格式两种模型的权重文件&#xff0c;我想获取tflite模型在推理阶段neck部分的输出。 查看onnx模型得到neck最后一层位置 使用netron查看onnx模型结构 从name中能知道Reshape是neck的最后一…

微信小程序固定头部-CSS实现

效果图 代码逻辑&#xff1a;设置头部的高度&#xff0c;浮动固定后&#xff0c;再加个这个高度的大小的外边距 .weui-navigation-bar {position: fixed;top: 0px;left: 0px;right: 0px;height:90px; } .weui-navigation-bar_bottom{height:90px; }

SpringCloud 基本概念

开篇 学习springcloud的前提我已经认为你已经具备&#xff1a; 微服务的基本概念具备springboot的基本用法 eurake server:注册中心,对标zookeeper eurake client:服务,对标dubbo ribbon:负载均衡,对标nginx feign:与ribbon类似,目前项目没有使用,暂时就不写 hystrix:断路…