怎么用Python爬取淘宝上的粽子数据并进行分析

技术怎么用Python爬取淘宝上的粽子数据并进行分析这篇文章将为大家详细讲解有关怎么用Python爬取淘宝上的粽子数据并进行分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了

本文将详细讲解如何使用Python对淘宝上的粽子数据进行抓取和分析。文章内容质量较高,边肖将分享给大家参考。希望大家看完这篇文章后对相关知识有一定的了解。

爬虫

抓取淘宝数据。这次采用的方法是:Selenium控制Chrome浏览器自动运行。其实我们也可以用Ajax接口来构造链接,但是很麻烦(包括加密密钥等)。).直接用Selenium模拟浏览器会省很多事。

最常见的问题是chromedriver驱动与谷歌浏览器版本不匹配,这个问题很容易解决。接下来,我们开始使用selenium抓取淘宝产品,并使用Xpath分析获取商品名称、价格、付款人数量、店铺名称、发货地址等信息,最后将数据保存到本地。

爬虫程序如下:

怎么用Python爬取淘宝上的粽子数据并进行分析

Selenium自动抓取(需要淘宝扫描才能登录一次)。

来自seleniumimportwebdriver

#搜索产品并获取产品页码。

defsearch_product(关键字):

#定位输入框

browser.find_element_by_id('q ')。发送关键字(关键字)

#定义点击按钮并点击。

browser . find _ element _ by _ class _ name(' BTN-search ')。点击()

#最大化窗口:为了扫码方便。

browser.maximize _ window()

#等待15秒,给我们足够的时间扫描代码。

睡眠时间

#找到这个“页码”,得到“100页这篇文字”。

page _ info=browser . find _ element _ by _ XPath('//div[@ class=' total ']')。文本

#请注意,findall()返回一个列表,虽然此时只有一个元素,但它也是一个列表。

page=re.findall('(\d '),page_info)[0]

有关returnpage的详细爬虫代码下载,请参见文章结尾。

00-1010这时,我们爬上了数据:

怎么用Python爬取淘宝上的粽子数据并进行分析

整理前的数据。

数据还是比较粗糙的,有几个问题需要我们去处理:

添加列名。

删除重复数据(翻页和爬行时会有重复数据)。

如果买家数量为空,则替换为0进行支付。

将买家数量换算成销量(注意有的单位是万)。

删除没有发货地址的商品,提取省份。

部分代码:

#删除没有发货地址的商品,提取省份。

Df=df[df['送货地址']。notna()]

Df['省']=df['运输地址']。字符串。拆分(“”)。应用(lambdax:x [0])。

#删除冗余列。

Df.drop(['付款人数量','送货地址','数量','单位'],axis=1,inplace=true)。

#重置索引。

复位索引(下降=真)

df . head(10)怎么用Python爬取淘宝上的粽子数据并进行分析

排序后的数据。

这样,我们对数据进行了清理和排序,便于下一步可视化。

顺便整理一下,看看。

什么粽子最贵!

df1 = df.sort_values(by="价格", axis=0, ascending=False)
df1.iloc[:5,:]

怎么用Python爬取淘宝上的粽子数据并进行分析

想尝尝

数据可视化

本文我们打算用pyecharts进行可视化展示。有同学可能使用的是老版本(0.5X),Pyecharts的1.x版本与老版本(0.5X)不兼容,如果无法导入可能是这个问题哈。

可视化所有语句均基于v1.7.1,通过以下语句可查询你的pyecharts版本:

import pyecharts
print(pyecharts.__version__)

扇形图

最贵的粽子1780元看来是吃不起了,那大家都买什么价位的呢?

先按照淘宝推荐的区间划分一下:

def price_range(x): #按照淘宝推荐划分价格区间
    if x <= 22:
        return '22元以下'
    elif x <= 115:
        return '22-115元'
    elif x <= 633:
        return '115-633元'
    else:
        return '633元以上'

再使用pyecharts来生成不同价格区间的粽子销量占比图。

怎么用Python爬取淘宝上的粽子数据并进行分析

不同价格区间的粽子销量占比

看来百元以内的粽子(礼盒装)才是大家的正常承受范围,不过我还是选择小区门口的5块钱3个。

词云图

我们用jieba对爬取得到的商品名称分词,生成词云。

from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
# 词云图
word1 = WordCloud(init_opts=opts.InitOpts(width='1350px', height='750px'))
word1.add("", [*zip(key_words.words, key_words.num)],
          word_size_range=[20, 200],
          shape=SymbolType.DIAMOND)
word1.set_global_opts(title_opts=opts.TitleOpts('粽子商品名称词云图'),
                      toolbox_opts=opts.ToolboxOpts())
word1.render("粽子商品名称词云图.html")

怎么用Python爬取淘宝上的粽子数据并进行分析

粽子商品名称词云图

硕大的粽子周围环绕着几个突出的关键词:礼盒装、鲜肉、蛋黄、嘉兴、豆沙、端午节。除去端午节相关的词汇,我们通过关键词大小似乎就知道几种口味的受欢迎情况。

查阅资料对比一下,还真是大体一致。

心疼我枣粽。

至于嘉兴这个地名,我们后文会继续提到。

怎么用Python爬取淘宝上的粽子数据并进行分析

粽子商品销量Top10

五芳斋共4款入围,其中一款礼盒装达到了100万+的销量,应该比这个还多(参见微信的10w+)。真真老老紧随其后,3款粽子进入TOP10。其余的品牌还有稻香村和知味观,额,第九名是卖粽叶的,看来自己包粽子的需求也是蛮大的嘛。

怎么用Python爬取淘宝上的粽子数据并进行分析

粽子店铺销量Top10

粽子店铺销量Top10其实与商品相似,五芳斋官方旗舰店和真真老老旗舰店占据首位,遥遥领先。

经过查阅,五芳斋,真真老老,都为嘉兴的粽子两大品牌,那难怪嘉兴在词云图里那么突出。嘉兴属于浙江省,销量冠亚军都在这里,那浙江岂不是占比很大。

地图

继续使用pyecharts来生成各省份粽子销量分布图

from pyecharts.charts import Map 
# 计算销量
province_num = df.groupby('省份')['销量'].sum().sort_values(ascending=False) 
# 绘制地图
map1 = Map(init_opts=opts.InitOpts(width='1350px', height='750px'))
map1.add("", [list(z) for z in zip(province_num.index.tolist(), province_num.values.tolist())],
         maptype='china'
        ) 
map1.set_global_opts(title_opts=opts.TitleOpts(title='各省份粽子销量分布'),
                     visualmap_opts=opts.VisualMapOpts(max_=300000),
                     toolbox_opts=opts.ToolboxOpts()
                    )
map1.render("各省份粽子销量分布.html")

怎么用Python爬取淘宝上的粽子数据并进行分析

各省份粽子销量分布

这个销量占比差异真的是太大了。

可以说中国粽子看浙江,浙江粽子看嘉兴[3](通过计算发货地址为浙江的粽子销量占比70.6%,而嘉兴占浙江的87.4%)

关于怎么用Python爬取淘宝上的粽子数据并进行分析就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/49007.html

(0)

相关推荐

  • 如何模拟请求工具curl的异常处理

    技术如何模拟请求工具curl的异常处理小编给大家分享一下如何模拟请求工具curl的异常处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!日常开

    攻略 2021年10月19日
  • LeetCode刷题之DP算法

    技术LeetCode刷题之DP算法 LeetCode刷题之DP算法LeetCode刷题之动态规划算法
    1.基本思路及代码框架
    首先,动态规划的穷举有点特别,因为这类问题存在「重叠子问题」,如果暴力穷举的

    礼包 2021年11月29日
  • mysql如何查询数据表是否存在

    技术mysql如何查询数据表是否存在这篇文章主要为大家展示了“mysql如何查询数据表是否存在”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql如何查询数据表是否存在”

    攻略 2021年12月2日
  • 怎么使用MySQL中的select、distinct、limit

    技术怎么使用MySQL中的select、distinct、limit这篇文章主要讲解了“怎么使用MySQL中的select、distinct、limit”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路

    攻略 2021年11月10日
  • STM32 GPIO的原理、特性、选型和配置是什么

    技术STM32 GPIO的原理、特性、选型和配置是什么这期内容当中小编将会给大家带来有关STM32 GPIO的原理、特性、选型和配置是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

    攻略 2021年12月3日
  • 测试模型---四种经典模型

    技术测试模型---四种经典模型 测试模型---四种经典模型V模型
    V模型中的过程从左到右,描述了基本的开发过程和测试行为。
    V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这

    礼包 2021年11月29日