文 | 闲欢

来源:Python 技术「ID: pythonall」

刚刚过去的七夕,相信大家看到最多的是朋友圈秀恩爱(晒花),路上随处可见的也是某某女性手捧鲜花,各种大小花店一抢而空,只剩下满店狼藉。鲜花固然代表着美丽,代表着各种美好的含义,但是也不能教师节送花,母亲节送花,情人节也送花呀!作为情侣以及准情侣之间的礼物,能不能花点心思,送点不一样的,比如内衣……

有的男性朋友会跳出来骂了:说得好听,你知道送花多难吗?这种隐秘的数据,又不好直接开口问,又不能直接丈量,万一送错了不得把美好的事情搞砸了?

钢铁直男的想法总是这么赤果果,其实想知道妹子喜欢什么颜色的内衣,尺码是怎样的,不一定需要直接询问,可以有各种方法可以获取到,这里就不展开这个话题了。

为了探究妹子们的平常对内衣的普遍选择,我连夜爬取了网易严选关键词为“文胸”的商品评论数据,从中挑选了几个代表性的属性来做分析。

爬取数据

巧妇难为无米之炊,为了分析数据,我们首先要获取数据,在本次行动中,我们需要获取的是文胸的评论数据,我们从结果出发,一步步来细化我们的需求和步骤。

首先,我们在网易严选的搜索框输入关键词“文胸”,出来文胸的产品列表界面:

搜索结果

我们随便点开一个商品,点击“评论”,就可以看到如下信息:

评论信息

我们分析请求列表,就可以很容易地发现评论数据是他通过 https://you.163.com/xhr/comment/listByItemByTag.json 这个请求来获取的。然后我们逐个地排除请求的参数,最终发现 itemId 和 page 两个参数是必须的,其他的参数都可以不传。

itemId 是指产品的ID,page 不用说了,就是指的请求的页码。所以我们要获取评论数据的前提是获取到对应的产品ID。

在详情页的请求中是可以获取到产品ID的,但是我们想获取搜索结果的产品ID列表就必须去搜索结果页寻找。

产品列表

同样的,我们在搜索界面的请求分析中,找到了 http://you.163.com/xhr/search/search.json 这个请求,逐个分析请求参数后发现,我们只需要 keyword 和 page 两个参数即可。

有了这个分析的前提,我们就可以着手写代码来获取数据了。代码如下:


# 获取产品列表
def search_keyword(keyword):uri = 'https://you.163.com/xhr/search/search.json'query = {"keyword": keyword,"page": 1}try:res = requests.get(uri, params=query).json()result = res['data']['directly']['searcherResult']['result']product_id = []for r in result:product_id.append(r['id'])return product_idexcept:raise# 获取评论
def details(product_id):url = 'https://you.163.com/xhr/comment/listByItemByTag.json'try:C_list = []for i in range(1, 100):query = {"itemId": product_id,"page": i,}res = requests.get(url, params=query).json()if not res['data']['commentList']:breakprint("爬取第 %s 页评论" % i)commentList = res['data']['commentList']C_list.extend(commentList)time.sleep(1)return C_listexcept:raiseproduct_id = search_keyword('文胸')
r_list = []
for p in product_id:r_list.extend(details(p))with open('./comments.txt', 'w') as f:for r in r_list:try:f.write(json.dumps(r, ensure_ascii=False) + '\n')except:print('出错啦')

这里我只抓取了第一页的产品来分析每个产品的前100页的评论数据。我将获取到的评论数据放在文件中存储。预览如下:

存储数据

分析数据

抓取完数据后,我们就可以进入探索环节了,我想从颜色、尺码、评论三个角度去看看有没有什么惊奇地发现。

我们来看看数据结构的特点:

{"skuInfo": ["颜色:灰紫色套头套装","尺码:L(80BC-85AB)"],"frontUserName": "葡****字","frontUserAvatar": "http://yanxuan.nosdn.127.net/2a4479567d935ca3a88d7ea0e425ebc8","content": "好穿!很舒服","createTime": 1593738737271,"picList": [],"commentReplyVO": null,"memberLevel": 4,"appendCommentVO": null,"star": 5,"itemId": 3989517
}

这是一条评论数据,我们可以看到颜色和尺码都放在 skuInfo 里面,评论是放在 content 字段里面。同时,我们多翻一些数据就可以发现,这个颜色和尺码并不是统一的,不同的产品可能有不同的格式。

经过总结,对于颜色,我可以根据特点去除噪音,获取到统一的格式。而对于尺码,我只能将其分为两类:一类是以S、M、L、XL、XXL这种标识的比较通用的尺码,另一类是类似于75B这种比较准确的尺码。

我将颜色和尺码都做成柱状图来展示,而评论就用词云来展示。最终的效果图如下:

颜色分布

尺寸分布

尺寸分布

评论词云

这个颜色有点出乎我的意料,我预想的最受欢迎的颜色应该是黑色,结果浅肤色排在了第一,黑色排在了第二,不过相差不大。如果数据量再多一些的话,可能黑色会反超,成为第一。

而对于尺寸来说,我们看到精确的尺寸分布图,前三都是B,紧接着是A和C,这个意味着什么大家自己去判断,这里我就不展开了。而通用的尺码里面,M码是最多的,L码比M码稍少,但是相差不明显。

而对于评论的词云,毫无意外地显示,舒服是第一位的,质量也比较重要。

总结

网易严选面向的群体应该是35岁以下的新时代后浪们,而且主打的是物美价廉和性价比。所以这些数据也是这个群体的购买喜好的体现。至于分析的结果,那就是仁者见仁智者见智了,哈哈!

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式】

识别文末二维码,回复:200831

我半夜爬了严选的女性文胸数据,发现了惊天秘密相关推荐

  1. 我在深夜爬取了严选的女性文胸数据,发现了一个大秘密...

    点击上方蓝色小字,关注"涛哥聊Python" 重磅干货,第一时间送达 来源:Python 技术「ID: pythonall」 刚刚过去的七夕,相信大家看到最多的是朋友圈秀恩爱(晒花 ...

  2. 美漂数据科学家年薪多少?爬了6年H1B签证数据发现,招的人多了,但钱少了

    大数据文摘出品 来源:medium 编译:张睿毅.曹培信 自2012年起,一直被称为"最性感的工作"的数据科学家职位,吸引了大批远渡重洋到达硅谷,做着"数据梦" ...

  3. Python爬取2万条相亲数据!看看中国单身男女都在挑什么

    想必昨天的七夕节,一定是有人欢喜有人忧的一天,朋友圈里的晒照惹恼了我的一个程序员朋友,在昨晚怒爬2万条相亲网站数据,做了一次相亲男女画像! 话不多说,我们今天就以某相亲网站为例子,爬取搜索页面当中所有 ...

  4. 爬取网易buff CSGO饰品数据 - 优化篇

    文章目录 思路回顾 配置优化 RawConfigParser 处理配置列表 价格取舍 价格过滤 饰品类别限定 内部实现优化:结合价格筛选和饰品类别筛选 其他限定? 命名 The End 继上周末搞了c ...

  5. 刚刚用python爬取一千个微信朋友圈数据,他们的秘密原来这么多。

    当下我们饮食起居基本上依靠微信,但微信不单单是1个即时通信软件,更像是仿真模拟的日常生活世界.你所处的微信朋友圈是咋样,慢慢地你的思想也会变的咋样.近几日在学习 itchat,并且写了1个网络爬虫,扒 ...

  6. 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  7. python是一种面向对象的高级语言_爬了世纪佳缘后发现了一个秘密,世纪佳缘找对象靠谱吗?...

    今天在知乎上看到一个关于[世纪佳缘找对象靠谱吗?]的讨论,其中关注的人有 1903,被浏览了 1940753 次,355 个回答中大多数都是不靠谱.用 Python 爬取世纪佳缘的数据是否能证明它的不 ...

  8. 技术图文:如何爬取一个地区的气象数据(下)?

    背景 架空线路常见的故障有:风偏闪络故障.雷击跳闸故障.雷击断股故障.线路覆冰故障.线路污闪故障.线路外力破坏故障.线路鸟害故障等等.从这些故障中,我们可以看出天气对线路的安全运行起到非常重要的作用. ...

  9. 我用java爬了一下CSDN,发现了这些秘密。。。

    大家好,我是大尧. 今天我们使用Java语言写一个爬虫,用来爬取csdn首页推荐博客的博主,看看这些博主有多少人在写微信公众号. 一.爬虫原理 爬虫就是去请求某个url,然后将响应的页面进行解析,将解 ...

最新文章

  1. 【java 性能优化实战】3 工具实践:如何获取代码性能数据?
  2. android socket 简易聊天室 java服务器_利用Socket制作一个简易的Android聊天室
  3. jq 获取当时时间的到秒_空军飞行员忆战机被鸟撞后的37秒
  4. boost::fibers模块实现multiple streams的测试程序
  5. 计算机国际安全顶级会议
  6. 十大排序总结(js实现、稳定性、内外部排序区别、时间空间复杂度、冒泡、快速、直接选择、堆、直接插入、希尔、桶、基数、归并、计数排序)
  7. FLEX4 在组件中自定义ToolTip样式
  8. 大觉寺到鹫峰线路_大觉寺到鹫峰怎么走
  9. ADO.NET(二)
  10. 洛谷P2671 求和 数学 前缀和
  11. 沉浮二十载,奥飞成也萧何败也萧何?
  12. 谷粒商城--分布式基础篇1
  13. Profinet协议生成GSD文件教程
  14. hive-sql中平方和开根号函数
  15. win7系统域服务器,win7安装域服务器
  16. python返回值return用法_Python中return函数返回值代码实例用法
  17. 逆置单链表——递归与非递归
  18. Python简介及官网文档
  19. C——W小J的编程采坑与进步绪篇
  20. 雷达测角方法(MUSIC ESPRIT)

热门文章

  1. android网络游戏开发——客户端开发——游戏引擎的选择
  2. 踢楼送QQ红钻、黄钻、绿钻
  3. 文/特约作者 孙思娜 图/CFP
  4. linux下使用QT5.8实现虚拟键盘
  5. QB期刊:纪念人类基因组草图发表20周年系列文章 | Michael Q. Zhang教授分享个人研究历程及学科发展思考...
  6. 年轻人买中古、喝酒的地方,换成了精品咖啡馆?
  7. 英文名Tyron的起始
  8. android 功耗分析方法和优化
  9. 《异域狂想曲》官方秘籍
  10. Linux 2.6.19.x 内核编译配置