python爬虫(6)——获取天猫商品评论信息

来源:互联网 发布:淘宝双11定金可以退吗 编辑:程序博客网 时间:2024/06/01 16:55

本文以读取商品评论的json数据的方式获取天猫商品评论,本文所采用的方法借鉴自知乎某大神(https://www.zhihu.com/question/36524413),可以非常方便地爬取特定商品的评价信息,但操作时需要熟悉url中各参数的含义及获取方式

1.爬取天猫商品评论信息示例

1.1 源代码如下所示:

# -*- coding: utf-8 -*-"""Created on Thu Jul  6 16:56:32 2017@author: Administrator"""import requestsimport json#商品评论的JSON数据url = 'https://rate.tmall.com/list_detail_rate.htm?itemId=541396117031&spuId=128573071&spuId=128573071&sellerId=2616970884&order=3&currentPage=1&append=⊙&content=1'req = requests.get(url)jsondata = req.text[15:]data = json.loads(jsondata)#输出页面信息print('page:',data['paginator']['page'])#遍历评论信息列表for i in data["rateList"]:    #输出商品sku信息    print(i['auctionSku'])    #输出评论时间和评论内容    print(i['rateDate'],i['rateContent'])    info = i['appendComment']    #判断是否有追加评论    if info:        print(info['commentTime'])        print(info['content'])    print('======')

1.2 测试结果如下图所示:

这里写图片描述

天猫商品原始评论截图如下图所示:

这里写图片描述

对比上面两张图片,可以发现已经成功获取到该商品近期的评论信息

2.URL中各参数详细分析

上面虽然能够成功获取天猫商品评论信息,但是只能获取特定商品某一页的评论信息,并且url地址也已经事先给出来了。那如果想获取其他类别商品的多页评论数据怎么办呢?还是采用同样的方式,只不过需要对url地址中参数进行修改。上述代码中url详细地址如下所示:

url = 'https://rate.tmall.com/list_detail_rate.htm?itemId=541396117031&spuId=128573071&spuId=128573071&sellerId=2616970884&order=3&currentPage=1&append=⊙&content=1'

仔细分析该url可以发现该url有如下固定格式:
其中,https://rate.tmall.com/list_detail_rate.htm?为商品评论数据的固定开头,itemId商品IDspuId店铺IDsellerId店主IDorder取值的不同对应不同的评论排序方式currentPage表示想要获取第几页评论数据append表示是否有追加评论
下面介绍一下各项参数的获取方式,itemId可以在商品详情页URL中获取,如下图所示:

这里写图片描述

spuIdsellerId则需要在商品详情页源代码中获取,如下图所示:

这里写图片描述

后面的几项参数不同的取值对应不同商品评论信息,可以根据自己的需要进行尝试。当然,这种方法虽然能够非常简便的获取商品评论信息,但还需要人工修改参数,还有待进一步完善,未完待续。

阅读全文
0 0