01、前言

上一篇文章(爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!)爬取分析了淘宝的热卖商品,从分析来看『螺蛳粉』销量巨高。因此这篇文章将爬取淘宝全部『螺蛳粉』商品数据,通过可视化分析淘宝螺蛳粉的一些秘密

前言介绍这些废话就不多啰嗦了,直接开始吧!

02、爬取数据

1.数据来源

数据来源淘宝,如上图所示,直接在淘宝搜索框搜索“螺蛳粉”,这些就是我们需要爬取的数据。

2.网页分析思路

直接查看网页源代码,可以发现在网页的javascript代码里面包含了商品数据的json数据。

所以可以直接通过requests获取网页源代码,然后借助正则表达式获取这些商品数据。

ok,这样我们的获取数据的思路步骤就很清晰了!

3.编程获取数据

上篇文章我们知道,爬取淘宝数据,有cookie验证(反爬),因此requests中需要添加headers(包含cookie参数)

headers = {'Host':'s.taobao.com','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36','cookie':'cna=QsEFGOdo0BICARsnWHe+63/1; hng=CN%7Czh-CN%7CCNY%7C156; thw=cn; t=effdb32648fc8553a0d1a87926b80343; _m_h5_tk=a94dfbbc27ac02cdbf2cee2a89350b6a_1612614558558; _m_h5_tk_enc=c43b209ec0ed1292bcc622bef5ee6af5; cookie2=1a3fea5ffa0fad17b8c0bbaef21ebb68; _tb_token_=5de15eeea0fbe; xlly_s=1; _samesite_flag_=true; sgcookie=E1007k5qmQ9jBth1shqyTbJtsfmA3xbZNA9skFhamSfqcP7GZBjDZXwyW%2Fnbs39HPqifkG%2FiNiy0TB3VOa4TvxBSyg%3D%3D; unb=913134998; uc3=lg2=U%2BGCWk%2F75gdr5Q%3D%3D&vt3=F8dCuAc6zt7X28yBUrc%3D&id2=WvEIwUQBSki%2F&nk2=rW6iZSg5; csg=4de33d18; lgc=%5Cu897F%5Cu95E8%5Cu5EC9; cookie17=WvEIwUQBSki%2F; dnk=%5Cu897F%5Cu95E8%5Cu5EC9; skt=3fa41897557f2c39; existShop=MTYxMjYwNDU4NA%3D%3D; uc4=nk4=0%40r5%2FGFBQ7A5tJI1TpQam3MZQ%3D&id4=0%40WDb9t1Fxtm4iZCHd0tESONEjEoU%3D; publishItemObj=Ng%3D%3D; tracknick=%5Cu897F%5Cu95E8%5Cu5EC9; _cc_=WqG3DMC9EA%3D%3D; _l_g_=Ug%3D%3D; sg=%E5%BB%898a; _nk_=%5Cu897F%5Cu95E8%5Cu5EC9; cookie1=UUo1TGxcH8cPfpMWT7%2FuMD1anzLFJTzG47%2FnHaFSftY%3D; enc=1xoAdBLlK2BdC0gn79RjfmESRECbfDEgAmzpogjAgEE8dU2FQDF0xFpDq1gxeXD00WiK6XHZ9Wd3C3ltW9vaZw%3D%3D; mt=ci=10_1; uc1=pas=0&cookie15=Vq8l%2BKCLz3%2F65A%3D%3D&cookie21=UtASsssme%2BBq&cookie16=WqG3DMC9UpAPBHGz5QBErFxlCA%3D%3D&existShop=false&cookie14=Uoe1gB38uZ7EFQ%3D%3D; JSESSIONID=7137BBC97E23304D98ADE4E546DB686C; isg=BJ6eJexZctdNAZkZHuCIDdMx7zTgX2LZ0qNVJUgnCuHcaz5FsO-y6cQJZ3fnyFrx; l=eBIj49hqOGMgJqhbBOfanurza77OSIRYYuPzaNbMiOCP9Z5B5f2GW6MUrvY6C3GVh6XXR3yMI8QMBeYBqQAonxv92j-la_kmn; tfstk=c0ifByNUGsffR08N0x9P0RJhfBqOwvI7EgVrhqJE3SL7nW1mfMPBSlefNgULF','accept': 'image/avif,image/webp,image/apng,image/*,*/*;q=0.8','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','upgrade-insecure-requests': '1','referer':'https://s.taobao.com/',
}

请求网页内容

url="https://s.taobao.com/search?q=螺蛳粉&ie=utf8&bcoffset=0&ntoffset=0&s=0"
###requests+请求头headers
r = requests.get(url, headers=headers)
r.encoding = 'utf8'
s = (r.content)
###乱码问题
html = s.decode('utf8')

获取到网页中的javascritp数据中,接着通过正则表达式去提前所需内容(标题、销售地、销售量、评论数、销售价格、商品惟一ID、图片URL)

# 正则模式
p_title = '"raw_title":"(.*?)"'       #标题
p_location = '"item_loc":"(.*?)"'    #销售地
p_sale = '"view_sales":"(.*?)人付款"' #销售量
p_comment = '"comment_count":"(.*?)"'#评论数
p_price = '"view_price":"(.*?)"'     #销售价格
p_nid = '"nid":"(.*?)"'              #商品惟一ID
p_img = '"pic_url":"(.*?)"'          #图片URL

将正则表达式提取的数据放入到集合data中(方便后面统一保存到csv

# 数据集合
data = []
# 正则解析
title = re.findall(p_title,html)
location = re.findall(p_location,html)
sale = re.findall(p_sale,html)
comment = re.findall(p_comment,html)
price = re.findall(p_price,html)
nid = re.findall(p_nid,html)
img = re.findall(p_img,html)
for j in range(len(title)):data.append([title[j],location[j],sale[j],comment[j],price[j],nid[j],img[j]])

ok,这样我们就完成了从淘宝获取数据的过程,下一步将数据保存到csv中。

4.保存数据到csv

导入python操作csv相关库

import xlrd
import xlwt
from xlutils.copy import copy

追加写入excel

为了方便获取每一页的数据写入excel,这里定义了追加写入excel模板

ef write_excel_xls_append(path, value):index = len(value)  # 获取需要写入数据的行数workbook = xlrd.open_workbook(path)  # 打开工作簿sheets = workbook.sheet_names()  # 获取工作簿中的所有表格worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格rows_old = worksheet.nrows  # 获取表格中已存在的数据的行数new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格for i in range(0, index):for j in range(0, len(value[i])):new_worksheet.write(i+rows_old, j, value[i][j])  # 追加写入数据,注意是从i+rows_old行开始写入new_workbook.save(path)  # 保存工作簿

初始化表头

def initexcel():# 创建一个workbook 设置编码workbook = xlwt.Workbook(encoding='utf-8')# 创建一个worksheetworksheet = workbook.add_sheet('sheet1')workbook.save('螺蛳粉.xls')##写入表头value1 = [["标题", "销售地", "销售量", "评论数", "销售价格", '商品惟一ID', '图片URL']]book_name_xls = '螺蛳粉.xls'write_excel_xls_append(book_name_xls, value1)

开始保存

book_name_xls = '螺蛳粉.xls'
write_excel_xls_append(book_name_xls, data)
time.sleep(3)

为了防止禁ip,设置每一页的爬取时间间隔为3秒

通过追加的方式可以将螺蛳粉商品数据保存到excel中!

淘宝上的『螺蛳粉』商品一共是100页(每页44条,共100*44条数据

###请求url
#每页44条 规律:s的跨度为44
# s = 0 44 88 132
for i in range(0,101):print(i)url="https://s.taobao.com/search?q=螺蛳粉&ie=utf8&bcoffset=0&ntoffset=0&s="+str(i*44)

ok,这样就爬取了淘宝全部的『螺蛳粉』数据。

03、数据分析

下面分析有一些重复代码(画图的乱码设置pandas读取csv),为了不多啰嗦,这里先进行声明

# matplotlib中文显示
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
# 读取数据
# encoding='utf-8',engine='python'
IO = '螺蛳粉.xls'
data = pd.read_excel(io=IO)

分析1:分析价格分布

###分析1:分析价格分布
def analysis1():# 价格分布plt.figure(figsize=(16, 9))plt.hist(data['销售价格'], bins=20, alpha=0.6)plt.title('价格频率分布直方图')plt.xlabel('价格')plt.ylabel('频数')plt.savefig('价格分布.png')

结论

  1. 螺蛳粉的价格以50元占大多数,大部分价格在50元范围左右波动

  2. 少数螺蛳粉的价格达到250,甚至超过300。(猜测要么是大包销售,要么是明星效应价格)。

  3. 从整体上来看,螺蛳粉的价格不是很贵,适宜大众消费。

分析2:分析销售地分布

# 销售地分布
group_data = list(data.groupby('销售地'))
loc_num = {}
for i in range(len(group_data)):loc_num[group_data[i][0]] = len(group_data[i][1])
plt.figure(figsize=(55, 9))
plt.title('销售地')
plt.scatter(list(loc_num.keys())[:20], list(loc_num.values())[:20], color='r')
plt.plot(list(loc_num.keys())[:20], list(loc_num.values())[:20])
plt.savefig('销售地.png')

结论

上图是淘宝售卖『螺蛳粉』店铺的地区分布,取前20个地区进行可视化展示。

sorted_loc_num = sorted(loc_num.items(), key=operator.itemgetter(1), reverse=True)  # 排序
loc_num_10 = sorted_loc_num[:10]  # 取前10
loc_10 = []
num_10 = []
for i in range(10):loc_10.append(loc_num_10[i][0])num_10.append(loc_num_10[i][1])
plt.figure(figsize=(16, 9))
plt.title('销售地TOP10')
plt.bar(loc_10, num_10, facecolor='lightskyblue', edgecolor='white')
plt.savefig('销售地TOP10.png')

结论

  1. 在淘宝售卖『螺蛳粉』的店铺中,位于广西-柳州的店铺数量最多,且店铺数量远超于第二名(上海)。(螺蛳粉在广西非常有名,因此第一名是广西无可厚非)。

  2. 其他的地区的店铺数据都不相伯仲

分析3:词云分析

###分析3:词云分析
def analysis3():# 制作词云content = ''for i in range(len(data)):content += data['标题'][i]wl = jieba.cut(content, cut_all=True)wl_space_split = ' '.join(wl)pic = '词云图.png'gen_stylecloud(text=wl_space_split,font_path='simsun.ttc',# icon_name='fas fa-envira',icon_name='fab fa-qq',max_words=100,max_font_size=70,output_name=pic,)  # 必须加中文字体,否则格式错误

结论

这里将所有商品名称制作词云图,目的是可以看商品标题关键字最多的词是什么。(哪些关键字容易吸引用户

关键词:螺蛳粉、酸辣粉、广西、包邮,特长,方便面

分析4:商品价格对销量的影响分析

###分析4:线性回归分析
def analysis4():datas = datadatas = datas.dropna(axis=0, how='any')x = datas['销售量']y = datas['销售价格']x = x.tolist()y = y.tolist()for i in range(0, len(x)):j = x[i]if "+" in j:j = j.replace("+", "")if "万" in j:j = j.replace("万", "")j = float(j) * 10000x[i] = str(j)flg, ax = plt.subplots()ax.scatter(x,y, alpha=0.5,edgecolors= 'white')ax.set_xlabel('销量')ax.set_ylabel('价格')ax.set_title('商品价格对销量的影响')#隐藏刻度线和标签ax.set_xticks([])#plt.show()plt.savefig('商品价格对销量的影响.png')

结论

  1. 总体趋势:随着商品价格增多,其销量有所减少,商品价格对其销量有影响的;

  2. 价格在30-60之间的商品销量比较集中。

04、总结

以上内容就是淘宝全部『螺蛳粉』商品数据的爬取分析可视化过程!

如果大家对本文代码源码感兴趣,扫码关注Python爬虫数据分析挖掘后台回复:螺蛳粉 ,获取完整代码。

各种开源源码获取方式

识别文末二维码,回复:开源源码

------------- 推荐文章 -------------

1、爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!


2、详细实战教程!部署Flask网站+域名访问+免费https证书


3、王者荣耀白晶晶皮肤1小时销量突破千万!分析网友评论我发现了原因


4、基金这么赚钱!!编程实现基金从采集到分析通用模板!(白酒为例)


python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?相关推荐

  1. python 爬取淘宝网课

    python爬取淘宝网课,打开web控制台,发现有个链接可以下载到对应的内容,下载的格式是m3u8,用文本打开里面是许多.ts链接,当然百度后得知可以直接下个vlc然后下载,但是还是想用python试 ...

  2. python爬取淘宝商品图片

    python爬取淘宝商品的图片 话不多说,直接上代码: from selenium import webdriver from selenium.webdriver.common import key ...

  3. Python爬取淘宝女模特信息

    前言 Python爬取淘宝美女信息下载本地并同时存储mysql数据库,存储数据库用到了pymysql模块,sql语句简单好用,直接上代码,源码请点链接Python-Spiders文集. 项目结构: 本 ...

  4. python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...

  5. 用Python爬取淘宝网商品信息

    用Python爬取淘宝网商品信息 转载请注明出处 网购时经常会用到淘宝网 点我去淘宝但淘宝网上的商品琳琅满目,于是我参照中国大学 MOOC的代码写了一个爬取淘宝网商品信息的程序 代码如下: impor ...

  6. python电商数据挖掘_利用Python爬取淘宝商品并数据挖掘与分析实战!此乃大型项目!...

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  7. 第一篇博客,python爬取淘宝信息

    python爬取淘宝信息 本人只是刚学python的菜鸟,代码不规范及需改进的地方请指教 我们直接看代码吧!哈哈 import requests from bs4 import BeautifulSo ...

  8. 用Python爬取淘宝2000款套套,我发现了一个重要秘密

    点击上方"码农突围",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 一.淘宝商品信息爬取 这篇文章主要是讲解如何爬取数据,数据的分析放在下一篇.之所以分开是因为爬取淘宝遇 ...

  9. 爬虫案例 --- Python 爬取淘宝数据存到数据库

    可以做爬虫的语言有很多,如 PHP.Java.C/C++.Python等等... 1)PHP语言 虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程.异步支持不够好,并发处理能力很弱.爬虫是 ...

最新文章

  1. python 会计专用格式_python-2.7 – 如何使用xlsxwriter将格式应用为“文本”和“会计”...
  2. 关于 SAP Spartacus UI 框架选型问题
  3. php签入html出来的影响seo吗_搜索引擎优化_SEO必备6大技能+SEO误区讲解!
  4. 计算机大赛横幅标语有趣的,有趣的横幅标语
  5. java web启动socket_javaweb启动时启动socket服务端代码实现
  6. eclipse生成变量的快捷键
  7. python的优点有哪些-python语言有什么优势
  8. 这群程序员工作日竟然不用上班?
  9. List分组 用于客服对话分组场景
  10. Cobbler部署指南之配置管理篇[上文]
  11. Xray扫描器SQL注入检测:sqldet
  12. 配置微信公众号之公众号绑定小程序
  13. 怎么下载网页在线视频
  14. emacs-打开和关闭
  15. VUE filters 使用
  16. 实现原理讲解!最全SpringBoot学习教程,你值得拥有!
  17. 牛客刷题:放苹果(编程题)
  18. 爪哇国新游记之二十五----图及其遍历查找
  19. 结合 Whisper + Stable-diffusion 的语音生成图像任务
  20. 理财就是理生活 —— 小白理财训练营(上)

热门文章

  1. STM32CBT6 串口 BootLoader总结(C#上位机+单片机程序)
  2. uniapp微信小程序和打包app的分享功能
  3. Python爬虫和数据分析,石油原油加工产品产量数据处理分析
  4. 富士 XF30mm F2.8 微距镜头 评测
  5. python初中数学建模培训_中学生数学建模训练营精品班
  6. 博奥智源科技住房公积金业务管理系统改造适配参数设计分享
  7. 微信小程序 | IM交友聊天功能大汇总
  8. Notepad++输入模式之修改模和插入模式的切换
  9. 图文学习前端Flex布局
  10. Mysql 常见DML sql 总结