php爬虫严选,续爬取严选文胸数据之后,我深夜爬取了男性内裤数据,结果……...

2023-10-11 17:30

本文主要是介绍php爬虫严选,续爬取严选文胸数据之后,我深夜爬取了男性内裤数据,结果……...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这不马上就响应大家的号召,通过爬取网易严选的评论数据来给大家分析分析,看看有什么发现。

爬取数据

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

201353726_2_20200905083827912搜索结果

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

201353726_3_2020090508382837评论信息

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

itemId 是指商品的ID,page 就是指的请求的页码,默认每页记录数是40。所以我们要获取评论数据的前提是获取到对应的商品ID。

我们是从搜索页面点击产品进入商品详情页的,所以搜索页面的商品列表里面肯定存在每一个商品的商品ID,我们回到搜索产品列表页,寻找搜索商品的请求:

201353726_4_20200905083828130商品列表

同样的,我们在搜索界面的请求分析中,找到了 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('./briefs.txt', 'w') as f:for r in r_list:try:f.write(json.dumps(r, ensure_ascii=False) '\n')except:print('出错啦')

为了简单起见,我抓取了首页的40件商品的评论数,将结果保存在 briefs.txt 文件中。文件数据的预览如下:

201353726_5_20200905083828255存储数据

分析数据

抓取完数据后,我们就可以进入探索环节了,我想从颜色、尺码、评论三个角度分析数据,看看男士们内裤的一些“特点”。

我们来看看数据结构的特点:{  'skuInfo': [    '颜色:黑色',    '尺码:M'  ],  'frontUserName': 'S****、',  'frontUserAvatar': 'https://yanxuan.nosdn.127.net/0da37937c896cac1955bda8522d5754f.jpg',  'content': '非常好',  'createTime': 1592965119969,  'picList': [],  'commentReplyVO': null,  'memberLevel': 5,  'appendCommentVO': null,  'star': 5,  'itemId': 3544005}

仔细观察这条评论数据,我们可以看到颜色和尺码都放在 skuInfo 这个数组里面,评论是放在 content 字段里面。同时,我们多翻一些数据就可以发现,颜色有好几种格式:单条装的颜色,例如:颜色:浅麻灰

多条装的颜色,例如:颜色:(黑色 麻灰 浅麻灰)3条

自选多条的颜色,例如:颜色:黑色 藏青色

其他,例如:规格:5条装

这里,最后一种无法分辨出颜色,我准备过滤掉。其他几种,去除掉干扰,通过“ ”就可以拆分出颜色来。

而尺码数据格式是统一的,可以直接获取。

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

201353726_6_20200905083828365颜色分布

颜色并没有出乎我的意料,黑色遥遥领先,不过,如果把几种灰色加起来的话,可能超过了黑色。总之,黑色和灰色是大众的选择。

201353726_7_20200905083828537尺寸分布

尺寸嘛,前三名是XL、L和XXL,不过XL和L相差不大。

201353726_8_20200905083828646评论词云

从评论可以看出,不论是男性还是女性,对于内衣的选择,舒适度永远是第一的,质量其次。想想也是的,质量再好,穿着不舒服,是有点淡淡的忧伤~

总结

网易严选的受众群体是35岁以下的青年人,这个数据分析的结果也可以反应这个年龄群体的普遍选择。所以,广大男青年们,在你们嘲笑女性尺码多数是13的同时,不要忘了人还没到中年,腰包没鼓起来,腰带已经鼓起来了。多运动多注重身体管理吧!

这篇关于php爬虫严选,续爬取严选文胸数据之后,我深夜爬取了男性内裤数据,结果……...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/189676

相关文章

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient