[实战]我们爬取了20W条淘宝销售记录,只为了知道哪种月饼更受欢迎!

引言

中秋佳节我们要吃传统美食——月饼。小编忽然间有个想法,想要知道在淘宝上哪种月饼更受欢迎。说干就干,立马操练起来~

 

需求分析

通过爬取淘宝散装月饼销售记录,对用户购买过的月饼进行统计,分析最受欢迎的月饼种类。由于搜索关键字“月饼”会出现很多套装礼盒,影响我们的判断数据,所以我们将关键字定位“散装月饼”。

 

最终需求定为:爬取淘宝“散装月饼”搜索结果中,所有产品的评价,通过评价中展示的月饼馅类型,进行分析。

 

 

知识点

 

爬取数据:requests库

多线程:ThreadPoolExecutor

图形分析:pyecharts

 

获取产品ID

 

首先登陆淘宝网,打开开发者工具,搜索关键字“散装月饼”,观察URL。点击下一页,再次观察URL。下面列出前三页的URL。

 

第一页:https://s.taobao.com/search?ie=utf8&initiative_id=staobaoz_20180924&stats_click=search_radio_all%3A1&js=1&imgfile=&q=%E6%95%A3%E8%A3%85%E6%9C%88%E9%A5%BC&suggest=0_1&_input_charset=utf-8&wq=%E6%95%A3%E8%A3%85&suggest_query=%E6%95%A3%E8%A3%85&source=suggest

 

第二页:https://s.taobao.com/search?ie=utf8&initiative_id=staobaoz_20180924&stats_click=search_radio_all%3A1&js=1&imgfile=&q=%E6%95%A3%E8%A3%85%E6%9C%88%E9%A5%BC&suggest=0_1&_input_charset=utf-8&wq=%E6%95%A3%E8%A3%85&suggest_query=%E6%95%A3%E8%A3%85&source=suggest&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44

 

第三页:https://s.taobao.com/search?ie=utf8&initiative_id=staobaoz_20180924&stats_click=search_radio_all%3A1&js=1&imgfile=&q=%E6%95%A3%E8%A3%85%E6%9C%88%E9%A5%BC&suggest=0_1&_input_charset=utf-8&wq=%E6%95%A3%E8%A3%85&suggest_query=%E6%95%A3%E8%A3%85&source=suggest&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=88

 

这是前三个页面的URL,可以发现,除了"q="和"s="后面的数据不一样,其他的都是一样的,因此,可以把URL简化为:

https://s.taobao.com/search?q=keyword&s=pagenum

其中,q代表搜索的关键词,s代表商品列表的页数,0代表第一页,44代表第二页,88代表第三页……以此URL抓取商品的ID等信息。

 

此部分代码如下:

def get_product_id_list(num,all_product_list):
    base_url = "https://s.taobao.com/search"
    params = {
        "q":"月饼散装",
        "s":num*44,
    }

    r = requests.get(base_url,params=params,headers=headers)

    nids=re.findall(pattern='"nid":"(.*?)"',string=r.text)

    for nid in nids:
        if nid not in all_product_list:
            all_product_list.append(nid)

    print("第%s页product-id提取完成"%num)
    return all_product_list

 

获取月饼种类

 

上述代码可以获取到商品ID,利用商品ID信息,跳转到具体的商品详情页面,对其评论进行抓取。点击商品详情页的评论信息,可以看到调用了如下的接口信息:

 

上面的接口信息,我们去除不必要的参数,可以得到链接: https://rate.taobao.com/feedRateList.htm?auctionNumId=575182860576&currentPageNum=1 。推测auctionNumId为产品ID,currentPageNum为当前评论页数。根据上述分析,我们可以得到用户评论中的产品信息。部分代码如下:

    while True:
        params = {
            "auctionNumId":product_id,
            "currentPageNum":currentPageNum
        }
        r = requests.get(base_url,params=params,headers=headers)
        try:
            data = eval(r.text.strip("(").strip(")").replace("true","True").replace("false","False").replace("null","None"))
            total = data["total"]
        except:
            total = 0
        if total != 0:
            comments = data["comments"]
            for comment in comments:
                auction = comment["auction"]
                sku = auction["sku"]
                if sku in product.keys():
                    product[sku] += 1
                else:
                    product[sku] = 1
        else:
            break
        print("第%s条商品的第%s页评论爬取完成"%(num,currentPageNum))
        currentPageNum += 1
    print("第%s条商品的评论爬取完成" % num)

 

最后将爬取结果分类整理至本地文件。(代码略)

 

数据分析

 

通过上述的爬虫,我们最终爬取了22W条月饼销售记录。最后形成柱形图、饼图及词云图。

 

 

 

 

根据上述内容可以看到,除去礼盒类型,蛋黄、五仁、莲蓉、火腿为销售数量比较多的。(此部分统计数据是将杂项去除之后的数据)

 

除了按照馅的种类进行划分之外,我们还可以根据产地进行划分。结果如下图所示。

 

按照口味划分:

 

按照月饼皮类型分类:

 

以上数据均为部分数据,分析结果仅供参考!

 

源码

链接:https://pan.baidu.com/s/1ZHaOvyt1wRrzZOZnHthTjw 密码:27em

宝贝销售记录采集分析器是一款为卖家开发的,旨在分析某一款宝贝销售概况的软件。软件通过数据采集将采集结果保存到一个文件内,再通过打开已保存的文件进 行数据分析,分析生成每笔订单价格比例分布图(饼状图)、每笔订单购买件数比例分布图(饼状图)、每笔订单购买款式比例分布图(饼状图)、每笔订单购买型 号比例分布图(饼状图)、每日销售笔数数据图(折线图)和每日销售数据图(折线图)。通过这些图表,卖家可以准确追踪到某件热销宝贝的销售变动趋势。   ·  软件支持多个宝贝同时采集,采集结果分别保存,文件名为淘宝商品ID,如果勾选了自动保存到文本,则保存到软件目录下名称为结果的文件夹; ·  时间区间自由选择,用户可以选取一个日期到现在的区间来进行销售记录采集; ·  防屏蔽策略,用户可以设置采集时间间隔来防止被屏蔽,也可以启用付费的“人工打码”来消除验证码; ·  软件自带数据分析功能,根据导入采集到的结果,软件自动生成图表,数据展现直观; ·  软件保存的采集记录再下次采集时会自动新,这样用户就可以长期追踪监测一个商品的销售概况;    注:为了下次采集后记录能持续新到一个文件中,我们建议采集结果中的文件名(某商品的ID号)不要进行人工修改;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值