网易商品评论爬取

分析网页

评论分析

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

在商品页面,打开 Chrome 的控制台,切换至 Network 页,再把商品页Python入门到精通学习教程请加群,面切换到评价标签下,选择一个评论文字,如“薄款、穿着舒适、满意”,在 Network 中搜索。219539519零基础,进阶欢迎加入

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

将该 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

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_id
    except:
        raise
复制代码

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

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

{
                "skuInfo": [
                    "颜色:肤色",
                    "杯码:75B"
                ],
                "frontUserName": "1****8",
                "frontUserAvatar": "https://yanxuan.nosdn.127.net/f8f20a77db47b8c66c531c14c8b38ee7.jpg",
                "content": "质量好,穿着舒服",
                "createTime": 1555546727635,
                "picList": [
                    "https://yanxuan.nosdn.127.net/742f28186d805571e4b3f28faa412941.jpg"
                ],
                "commentReplyVO": null,
                "memberLevel": 4,
                "appendCommentVO": null,
                "star": 5,
                "itemId": 1680205
            }
复制代码

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

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

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']:
                break
            print("爬取第 %s 页评论" % i)
            commentList = res['data']['commentList']
            C_list.append(commentList)
            time.sleep(1)
            # save to mongoDB
            try:
                mongo_collection.insert_many(commentList)
            except:
                continue
        return C_list
    except:
        raise
复制代码

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

爬取的数据 MongoDB 链接

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

商品评论数据分析

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

偏好颜色

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

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

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

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

尺寸分布

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

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

商品评论

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

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

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

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

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

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

用 Python 爬取网易严选妹子内衣信息,探究妹纸们的偏好的更多相关文章

  1. 使用python爬取MedSci上的期刊信息

    使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...

  2. python爬取当当网的书籍信息并保存到csv文件

    python爬取当当网的书籍信息并保存到csv文件 依赖的库: requests #用来获取页面内容 BeautifulSoup #opython3不能安装BeautifulSoup,但可以安装Bea ...

  3. 如何利用python爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: LSGOGroup PS:如有需要Python学习资料的小伙伴可以 ...

  4. 零基础爬虫----python爬取豆瓣电影top250的信息(转)

    今天利用xpath写了一个小爬虫,比较适合一些爬虫新手来学习.话不多说,开始今天的正题,我会利用一个案例来介绍下xpath如何对网页进行解析的,以及如何对信息进行提取的. python环境:pytho ...

  5. python爬取豌豆荚中的详细信息并存储到SQL Server中

    买了本书<精通Python网络爬虫>,看完了第6章,我感觉我好像可以干点什么:学的不多,其中的笔记我放到了GitHub上:https://github.com/NSGUF/PythonLe ...

  6. python爬取智联招聘职位信息(多进程)

    测试了下,采用单进程爬取5000条数据大概需要22分钟,速度太慢了点.我们把脚本改进下,采用多进程. 首先获取所有要爬取的URL,在这里不建议使用集合,字典或列表的数据类型来保存这些URL,因为数据量 ...

  7. python爬取所有微信好友的信息

    ''' 爬取所有T信好友的信息 ''' import itchat from pandas import DataFrame itchat.login() friends=itchat.get_fri ...

  8. python爬取智联招聘职位信息(单进程)

    我们先通过百度搜索智联招聘,进入智联招聘官网,一看,傻眼了,需要登录才能查看招聘信息 没办法,用账号登录进去,登录后的网页如下: 输入职位名称点击搜索,显示如下网页: 把这个URL:https://s ...

  9. python爬取网易评论

    学习python不久,最近爬的网页都是直接源代码中直接就有的,看到网易新闻的评论时,发现评论时以json格式加载的..... 爬的网页是习大大2015访英的评论页http://comment.news ...

随机推荐

  1. 使用kubeadm方式安装K8S

    Kubeadm安装 kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实 ...

  2. HTML+CSS+JavaScript实现2048小游戏

    相信很多人都玩过2048小游戏,规则易懂.操作简单,我曾经也“痴迷”于它,不到2048不罢休,最高成绩合成了4096,现在正好拿它来练练手. 我对于2048的实现,除了使用了现有2048小游戏的配色, ...

  3. UGUI_冻结技能键盘点击触发

    1.在某一张image图上添加Button组件,使其具有点击触发事件的功能: 2.outline组件 3.SkillItem脚本 using System.Collections; using Sys ...

  4. Net基础篇_学习笔记_第十一天_面向对象(关键字new和this)

     new关键字 new:用来创建对象的.Person zsPerson=new Person();new帮助我们做了3件事儿:1).在内存中开辟一块空间2).在开辟的空间中创建对象3).调用对象的构造 ...

  5. json-lib包引入失败的解决方法

    要想使用json-lib的依赖必须加入<classifier>jdk15</classifier> 这一行,否则就导入依赖时就会失败报错,下载不下来jar包,因为json-li ...

  6. Winform中使用zxing实现二维码生成(附dll下载)

    场景 zxing.dll下载 https://download.csdn.net/download/badao_liumang_qizhi/11623214 效果 实现 新建Winform程序,将上面 ...

  7. jquery多级树形下拉菜单

    效果图: 使用方法 (1)引入 jQuery 包,下载地址 (2)引入 zTree 包,下载地址 (3)引入 tree-select.js (4)$("#id").treeSele ...

  8. CentOS 7.6安装MySQL 5.7GA版

    环境准备 卸载mariadb rpm -qa | grep mariadb rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 centos7 内部集 ...

  9. 表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数

    目录 表达式树练习实践:C#值类型.引用类型.泛型.集合.调用函数 一,定义变量 二,访问变量/类型的属性字段和方法 1. 访问属性 2. 调用函数 三,实例化引用类型 四,实例化泛型类型于调用 五, ...

  10. 反射的应用、获取Class类实例

    *准备工作: 包结构:* ======================= Person.java代码: package com.atguigu.java; public class Person { ...