|
|
51CTO旗下网站
|
|
移动端

爬了7000+条内衣信息,只为探究妹纸们的偏好!

为了探究妹纸们的偏好,我爬了网易严选妹子内衣信息总共是七千多条数据,下面一起来看看网易严选商品评论的获取和分析。

作者:周萝卜来源:萝卜大杂烩|2019-11-22 09:42

为了探究妹纸们的偏好,我爬了网易严选妹子内衣信息总共是七千多条数据,下面一起来看看网易严选商品评论的获取和分析。


图片来自 Pexels

声明:这是一篇超级严肃的技术文,超!级!严!肃!请本着学习交流的态度阅读,谢谢!

分析网页

①评论分析

进入到网易严选官网,搜索“文胸”后,先随便点进一个商品。

在商品页面,打开 Chrome 的控制台,切换至 Network 页,再把商品页面切换到评价标签下,选择一个评论文字,如“薄款、穿着舒适、满意”,在 Network 中搜索。

可以发现,评论文字是通过 listByItemByTag.json 传递过来的,点击进入该请求,并拷贝出该请求的 URL:

  1. https://you.163.com/xhr/comment/listByItemByTag.json?csrf_token=060f4782bf9fda38128cfaeafb661f8c&__timestamp=1571106038283&itemId=1616018&tag=%E5%85%A8%E9%83%A8&size=20&page=1&orderBy=0&oldItemTag=%E5%85%A8%E9%83%A8&oldItemOrderBy=0&tagChanged=0 

将该 URL 放入 Postman 中,逐个尝试 url query params,最后能够发现,只需保留 itemId 和 page 两个请求参数即可。

请求返回的是一个 JSON 格式的数据,下面就是分析该 JSON 数据了。

不难发现,所有的评论数据都存储在 commentList 中,我们只需保存该数据即可。

下面就是如何获取 itemId 的信息了,这个是产品的 ID,我们回到网易严选首页,继续分析。

②产品 ID 获取

当我们在搜索框中输入关键字进行搜索的时候,同样能够发现在 Network 中有很多请求。

此时可以观察各个请求,通过请求文件的名称(此处需要一些经验,守规矩的程序员都不会乱起名字),我们可以定位到搜索时展示搜索结果的请求。

搜索一般都是 search,所以我们就锁定了这个 search.json 的请求。同样把请求 URL 拷贝到 Postman 中,逐个验证传参,最后保留 page 和 keyword 两个参数即可。

该请求返回的数据较多,还是需要耐心的分析数据,也能够发现,在 result->data->directly->searcherResult->result 下面的 id 值,即为我们要获取的产品 ID。

以上,我们基本完成了前期的分析工作,下面开始代码的编写。

编写代码

①获取产品 ID

代码如下:

  1. def search_keyword(keyword): 
  2.     uri = 'https://you.163.com/xhr/search/search.json' 
  3.     query = { 
  4.         "keyword": keyword, 
  5.         "page": 1 
  6.     } 
  7.     try: 
  8.         res = requests.get(uri, params=query).json() 
  9.         result = res['data']['directly']['searcherResult']['result'
  10.         product_id = [] 
  11.         for r in result: 
  12.             product_id.append(r['id']) 
  13.         return product_id 
  14.     except
  15.         raise 

我这里是获取了 page 为 1 的产品 ID,下面就是通过产品 ID 来获取不同产品下的评论信息。

②获取数据存储

通过前面的分析,我们可以知道,评论信息都是如下形式的,对这种形式的信息,我们可以很方便地存储进入 MongoDB,然后再慢慢分析数据里的内容。

  1.                 "skuInfo": [ 
  2.                     "颜色:肤色"
  3.                     "杯码:75B" 
  4.                 ], 
  5.                 "frontUserName""1****8"
  6.                 "frontUserAvatar""https://yanxuan.nosdn.127.net/f8f20a77db47b8c66c531c14c8b38ee7.jpg"
  7.                 "content""质量好,穿着舒服"
  8.                 "createTime": 1555546727635, 
  9.                 "picList": [ 
  10.                     "https://yanxuan.nosdn.127.net/742f28186d805571e4b3f28faa412941.jpg" 
  11.                 ], 
  12.                 "commentReplyVO"null
  13.                 "memberLevel": 4, 
  14.                 "appendCommentVO"null
  15.                 "star": 5, 
  16.                 "itemId": 1680205 
  17.             } 

对于 MongoDB,我们既可以自己搭建,也可以使用网上免费的服务。在这里我介绍一个免费的 MongoDB 服务网站:mlab,使用很简单,就不过多介绍使用过程了。

数据库有了,下面就是把数据保存进去了:

  1. def details(product_id): 
  2.     url = 'https://you.163.com/xhr/comment/listByItemByTag.json' 
  3.     try: 
  4.         C_list = [] 
  5.         for i in range(1, 100): 
  6.             query = { 
  7.                 "itemId": product_id, 
  8.                 "page": i, 
  9.             } 
  10.             res = requests.get(url, params=query).json() 
  11.             if not res['data']['commentList']: 
  12.                 break 
  13.             print("爬取第 %s 页评论" % i) 
  14.             commentList = res['data']['commentList'
  15.             C_list.append(commentList) 
  16.             time.sleep(1) 
  17.             # save to mongoDB 
  18.             try: 
  19.                 mongo_collection.insert_many(commentList) 
  20.             except
  21.                 continue 
  22.         return C_list 
  23.     except
  24.         raise 

最后爬取完成之后,总共是七千多条数据,下面就可以根据个人需要做一些分析了。

爬取的数据 MongoDB 链接:

  1. conn = MongoClient("mongodb://%s:%s@ds149974.mlab.com:49974/you163" % ('you163''you163')) db = conn.you163 mongo_collection = db.you163 

商品评论数据分析

下面就到了激动人心的时刻了,一探妹子偏好!

偏好颜色

先来看看妹子们偏好的颜色:

可以看出,黑色是遥遥领先的哦,这里你要做到心中有数!

再通过饼状图来观察下不同颜色的占比情况:

那么这些颜色中,有你的她喜欢的吗?

尺寸分布

再来看看妹子们的尺寸分布:

没有问题,75B 就是大多数妹子的尺寸了!

如果你对这种罩杯尺寸没有研究的话,不要紧,贴心的我给你准备了对照表,拿走不谢!

商品评论

最后我们再来看看妹子们对于商品的评价情况:

就星级评价上来看,大多数都是五星好评,毕竟打着“严选”的名号,质量是必须有保证的。

再来看看在评论区,妹子最喜欢用什么词语来描述呢:

舒服、很舒服,非常舒服;满意、很满意,非常满意。

仿佛进入了“夸夸群”,看来妹子们首要看重的就是舒服与否,毕竟是贴身的,质量最重要!

好了,看了上面的分析,单身的你是不是更加有了脱单的冲动?如果是已经有软妹傍身的你,是不是该下手讨好下身边的她了呢?

完整代码如下:

  1. https://github.com/zhouwei713/data_analysis/tree/master/you163_spider 

【编辑推荐】

  1. 关于数据科学的趋势和前景,这里有你想了解的信息
  2. 51信用卡被查引发“爬虫技术”争议 是否侵犯个人信息?
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

骨干网与数据中心建设案例

骨干网与数据中心建设案例

高级网工必会
共20章 | 捷哥CCIE

394人订阅学习

中间件安全防护攻略

中间件安全防护攻略

4类安全防护
共4章 | hack_man

142人订阅学习

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

288人订阅学习

读 书 +更多

人月神话:32周年中文纪念版

在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解。既有很...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微