Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >淘宝评论的爬取

淘宝评论的爬取

作者头像
热心的社会主义接班人
发布于 2018-09-30 02:38:39
发布于 2018-09-30 02:38:39
1.9K00
代码可运行
举报
文章被收录于专栏:cscs
运行总次数:0
代码可运行

文章禁止转载,违者必究

淘宝网页的评论数据动态加载的,首先要关闭adblock等屏蔽插件广告。还有我登陆了账号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<pre id="line1"><ul id="J_TabBar" class="tb-tabbar tb-clear" data-spm-anchor-id="2013.1.20140004.i0.323910cfuqpKQZ">  <li class="tb-first"></pre>
<pre id="line1"> 
 <a class="tb-tab-anchor" href="javascript:void(0);" hidefocus="true" shortcut-key="g d" shortcut-label="查看宝贝详情" shortcut-effect="click" data-index="0" data-spm-click="gostr=/tbdetail;locaid=d1" data-spm-anchor-id="2013.1.20140004.d1">宝贝详情</a> 
 <div class="tb-selected-indicator">
</div> 
 </li>  
<li class="selected">  <a class="tb-tab-anchor" href="javascript:void(0);" hidefocus="true" shortcut-key="g c" shortcut-label="查看累计评论" shortcut-effect="click" data-index="1" data-spm-click="gostr=/tbdetail;locaid=d2" data-spm-anchor-id="2013.1.20140004.d2"> 累计评论 
<em class="J_ReviewsCount">6050
</em>
</pre>
<pre id="line1">  
</a> 
 <div class="tb-selected-indicator"></div>  </li> 
 </pre>
<pre id="line1">li id="J_ServiceTab">  <a class="tb-tab-anchor" href="javascript:void(0);" hidefocus="true" data-spm-click="gostr=/tbdetail;locaid=d4" shortcut-key="g z" shortcut-label="查看专享服务" shortcut-effect="click" data-index="4" data-spm-anchor-id="2013.1.20140004.d4"> 
专享服务</a>  
<div class="tb-selected-indicator"></div>  
</li>
</pre>

image.png

通过firefox浏览器,终于找到了评论的url,如下。

image.png

评论的url

这几个url在html源代码中可以找到。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    描述加载中
    
    </div>
</div><div id="reviews"
     data-reviewApi = "//rate.taobao.com/detail_rate.htm?userNumId=143813255&amp;auctionNumId=556129616183&amp;showContent=1&amp;currentPage=1&amp;ismore=0&amp;siteID=12"
     data-reviewCountApi = ""
     data-listApi = "//rate.taobao.com/feedRateList.htm?userNumId=143813255&amp;auctionNumId=556129616183&amp;siteId=12&amp;spuId=0"
     data-commonApi = "//rate.taobao.com/detailCommon.htm?userNumId=143813255&amp;auctionNumId=556129616183&amp;siteID=12&amp;spuId=0"
     data-usefulApi = "//rate.taobao.com/vote_useful.htm?userNumId=143813255&amp;auctionNumId=556129616183">
</div>
<div id="deal-record">

找到了评论的url其内容为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
jsonp_tbcrate_reviews_list({
    "qnaDisabled": true,
    "watershed": 100,
    "search": "http://11.178.153.195:30051/bin/sp?app=pinglun&outfmt=json&seek_timeout=400&gmt_create=1521907200~&risk_status=0|-1&rate_risk_limit=0&item_id=556129616183&user_id=2970747408&risk_time_now=1537497213&layer_quota=500000&rate_risk_search=1&fold_flag=0&no_risk_status=0|-1&rate_risk_own=0&order=algo_sort:des&s=0&n=20&is_wireless=0&user_id=2970747408&utd_id=2970747408&is_click_sku=0",
    "total": 467,
    "comments": [{
        "date": "2018年09月16日 12:32",
        "shareInfo": {
            "lastReplyTime": "",
            "share": false,
            "pic": 0,
            "reply": 0,
            "userNumIdBase64": ""
        },
        "showDepositIcon": false,
        "o2oRate": null,
        "mainTradeId": 0,
        "raterType": 0,
        "validscore": 1,
        "video": null,
        "photos": [],
        "content": "小巧精致,挺好意思,孩子再大点就可以玩了。带上壳风扇,温度在40多度,装好系统直接在电脑上开ssh加wifi,不用再加显示器键盘鼠标,通电直接连上,爽撒",
        "rateId": 1017227150661,
        "spuRatting": [],
        "auction": {
            "thumbnail": "",
            "link": "//item.taobao.com/item.htm?id=556129616183",
            "auctionPic": "//img.alicdn.com/bao/uploaded/null_40x40.jpg",
            "sku": "套餐:单独主板  树莓派:3B+ E14 新款",
            "title": "",
            "aucNumId": "556129616183"
        },
        "award": "",
        "rate": "1",
        "creditFraudRule": 0,
        "appendCanExplainable": false,
        "from": "",
        "tag": "",
        "propertiesAvg": "0.0",
        "reply": null,
        "dayAfterConfirm": 0,
        "lastModifyFrom": 0,
        "bidPriceMoney": {
            "amount": 243,
            "centFactor": 100,
            "cent": 24300,
            "displayUnit": "元",
            "currency": {
                "symbol": "¥",
                "displayName": "人民币",
                "currencyCode": "CNY",
                "defaultFractionDigits": 2,
                "numericCode": 156
            },
            "currencyCode": "CNY"
        },
        "noQna": true,
        "promotionType": "活动促销 ",
        "vicious": "",
        "enableSNS": false,
        "appendList": [],
        "buyAmount": 1,
        "showCuIcon": true,
        "serviceRate": null,
        "useful": 0,
        "user": {
            "nick": "l***3",
            "vipLevel": 0,
            "displayRatePic": "b_blue_2.gif",
            "nickUrl": "",
            "anony": false,
            "rank": 874,
            "avatar": "//wwc.alicdn.com/avatar/getAvatar.do?userIdStr=Xmhzv8xLX8cbP0lhOmcSPmcLOH8LPG80XFR-P8c4PGMhMmgSPFx4vCIuvGgyOFvW&width=40&height=40&type=sns",
            "vip": "",
            "userId": "",
            "rankUrl": ""
        },
        "append": null,
        "status": 0
    }, 

...................

其返回的东西是json传输的。

json.loads json.loads 用于解码 JSON 数据.该函数返回 Python 字段的数据类型。 json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

根据上面得到comments后面的[]即列表类型,[]里有多个{}信息,每个{}代表一个用户的评论信息

通过json.loads()后变成字典,取出需要的东西。

下面就是构造所有的url 下面是1,2页数的评论,主要currentPageNum变化。构造出需要的网站。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://rate.taobao.com/feedRateList.htm?auctionNumId=556129616183&userNumId=143813255&currentPageNum=1&pageSize=20&rateType=&orderType

https://rate.taobao.com/feedRateList.htm?auctionNumId=556129616183&userNumId=143813255&currentPageNum=2&pageSize=20&rateType=&orderType

相关的code如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
"""
Created on Fri Sep 21 11:36:31 2018

@author: dflx
"""

import requests
import re
import os
import time
import json
import pandas as pd
from bs4 import BeautifulSoup
import xlwt
import xlrd
import os


#获取网页的html源码
def get_html(url):
    header = {
        'Accept':'application/json, text/plain, */*',
        'Accept-Language':'zh-CN,zh;q=0.3',
        'Referer':'https://item.taobao.com/item.htm',
        'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
        'Connection':'keep-alive',
    }
    
    response=requests.get(url,headers=header, verify=False)
    #response.encoding=response.apparent_encoding
    html=response.text
    return html

def getJson(url):
    data=get_html(url).strip().strip('()')
    d=json.loads(data)
    b=d['comments']  #得到comments后面的[]即列表类型,[]里有多个{}信息,每个{}代表一个用户的评论信息
    print(type(b[0])) #列表[]里的每一个元素又是一个字典类型的数据
#下面遍历列表元素,取出每一个列表元素中字典里的特定信息:content、nick、date
    print(type(b))
    elem_list=[]
    for elem in b:
        user=elem["user"]['nick']
        date=elem['date']
        xh=elem['auction']["sku"]
        money=elem["bidPriceMoney"]['amount']
        comt=elem['content']
        elem_list.append(user)
        elem_list.append(date)
        elem_list.append(xh)
        elem_list.append(money)
        elem_list.append(comt)
        
    return elem_list
        
        
    #print(b['date'])
    #table=pd.DataFrame(b,columns=["user"['nick'],'date','auction'["sku"],"bidPriceMoney"['amount'],'content'])
    #table=pd.DataFrame(b,columns=["user",'date'])
    #table.to_excel("E:\\mytable.xlsx")


#单独写一页的评论
row=0 #行
def write(information):
    path="E:\\informa.xls"
    global row #行
    column=0 #列
    count=0
    file=xlwt.Workbook()
    sheet1=file.add_sheet('1')
    t=len(information)
    if(t==0):
        return
    print(information)
    print(" 一共有",5,'列 ',t/5,'行')
    
    for j in range(t):
        sheet1.write(row,column,information[j])
        count=count+1 #计数器
        column=column+1 # 
        if(count%5==0):
            row=row+1
            column=0
    file.save(path)
    print('successful')
       



def writeAll(num):
    first="https://rate.taobao.com/feedRateList.htm?auctionNumId=556129616183&userNumId=143813255&currentPageNum="
    path="E:\\informa.xls"
    column=0 #列
    count=0
    file=xlwt.Workbook()
    sheet1=file.add_sheet('1')

    elem_list=[]
    elem_list.append("user")
    elem_list.append("date")
    elem_list.append("型号")
    elem_list.append("money")
    elem_list.append("评论")
    
    for index in range(len(elem_list)):
        sheet1.write(0,index,elem_list[index])
    row=1


 
    for n in range(1,num+1):
        try:
            url=first+str(n)+"&pageSize=20"
            print(url)
            infor=getJson(url)
            t=len(infor)
            if(t==0):
                return
            for j in range(t):
                sheet1.write(row,column,infor[j])
                count=count+1 #计数器
                column=column+1 # 
                if(count%5==0):
                    row=row+1
                    column=0
            file.save(path)
            
        except:
            print("has error")
            continue     
    print(str(n)+"-------------页写入成功了,")


def main():
    url0="https://item.taobao.com/item.htm?spm=a230r.1.14.20.6e20434b4CzHZ3&id=556129616183&ns=1&abbucket=9#detail"
    html=get_html(url0)
    #print(html)
    
    url1="https://rate.taobao.com/feedRateList.htm?auctionNumId=556129616183&userNumId=143813255&currentPageNum=1&pageSize=20"
    html1=get_html(url1)
    #print(html1)
    writeAll(30)

遇到了一个坑,就是写excel时候单独写一页,后在写,会覆盖。最后直接总体写

image.png

参考文章如下 Python爬虫 获得淘宝商品评论 Python爬取淘宝商品详情页数据 通过Python抓取天猫评论数据 Python xlrd、xlwt 用法说明

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.09.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于LDA和baidu-aip的舆情分析项目
本文主要分为数据获取(微博爬虫)、文本分析(主题抽取、情感计算)。项目场景:以微博为数据源,分析新冠疫苗舆情的主题演化和情感波动趋势,结合时事进行验证,从而得出特殊事件对于舆情的特定影响,为突发公共事件的社交媒体舆情合理引导提供建议。
润森
2022/09/22
1.8K0
基于LDA和baidu-aip的舆情分析项目
python 爬取淘宝模特信息
  通过本篇博文,介绍一下我对指定信息进行爬取的时候的思路,顺便贴一下代码。  一、首先获取想要爬取的网站的url链接的规则变化 可以看出来该网站页面的url结构简单,变化的只是https://mm.
py3study
2020/01/07
5911
python 爬取淘宝模特信息
Python如何爬取b站热门视频并导入Excel
这篇文章主要介绍了Python如何爬取b站热门视频并导入Excel,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
python学习教程
2020/09/16
6690
Python如何爬取b站热门视频并导入Excel
爬取当当网评论
所有的我们想要的图书信息都在class为bang_list_box的div标签下的ul标签下的li标签,每一个li里都有一本书的信息。
用户4793865
2023/01/12
5680
用python实现一个豆瓣通用爬虫(登陆、爬取、可视化分析)
在本人上的一门课中,老师对每个小组有个任务要求,介绍和完成一个小模块、工具知识的使用。然而我所在的组刚好遇到的是python爬虫的小课题。
bigsai
2020/11/03
2.8K0
用python实现一个豆瓣通用爬虫(登陆、爬取、可视化分析)
爬取拉勾网招聘信息并使用xlwt存入Excel
通过浏览器自带的开发者工具查看是通过Post方式提交的,数据是通过Ajax(异步加载)得到的
Python攻城狮
2018/08/23
5270
爬取拉勾网招聘信息并使用xlwt存入Excel
python爬取豆瓣电影榜单
省略需求到编码中间的繁文缛节,直接上手编码。(此处是最终编码) 目标一使用BeautifulSoup解析页面查找元素。 目标二调用接口处理返回的json数据。
全栈程序员站长
2022/09/01
8400
Python爬取微信公众号文章和评论 (基于Fiddler抓包分析)
  感觉微信公众号算得是比较难爬的平台之一,不过一番折腾之后还是小有收获的。没有用Scrapy(估计爬太快也有反爬限制),但后面会开始整理写一些实战出来。简单介绍下本次的开发环境:
happyJared
2018/09/20
4.2K0
Python爬取微信公众号文章和评论 (基于Fiddler抓包分析)
任意爬取!超全开源爬虫工具箱
最近国内一位开发者在 GitHub 上开源了个集众多数据源于一身的爬虫工具箱——InfoSpider,一不小心就火了!!!
龙哥
2020/11/19
7410
任意爬取!超全开源爬虫工具箱
爬取淘宝/天猫评论数据的过程
要做数据分析首先得有数据才行。对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了。本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似的做法,不赘述。主要是分析页面以及用Python实现简单方便的抓取。 笔者使用的工具如下 Python 3——极其方便的编程语言。选择3.x的版本是因为3.x对中文处理更加友好。 Pandas——Python的一个附加库,用于数据整理。 IE 11——分析页面请求过程(其他类似的流量监控工具亦可)。 剩下的还有requests,re,这些都是
机器学习AI算法工程
2018/03/15
2K0
技术 | Python从零开始系列连载(二十八)
之前我水平有限,对于淘宝评论这种动态网页,由于数据在网页源码中是找不到的,所以无法抓取数据,只能使用selenium模仿人操控浏览器来抓数据,
灯塔大数据
2018/12/07
6050
技术 | Python从零开始系列连载(二十八)
python爬取7w+『赘婿』弹幕,发现弹幕比剧还精彩!
在上一篇文章【以『赘婿』为实战案例,手把手教会你用python爬取『爱奇艺』视频弹幕】,教会了大家如何爬取爱奇艺弹幕!
Python研究者
2021/03/05
6300
python爬取7w+『赘婿』弹幕,发现弹幕比剧还精彩!
python爬取鬼灭漫画+简单JS分析
点击进入第一话后,分析网页源码,发现图片保存在a标签下的img中,但是需要爬取的src是用javascript写的!这个时候直接用lxml库去解析是拿不到图片的。
快学Python
2021/08/09
5770
python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?
上一篇文章(爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!)爬取分析了淘宝的热卖商品,从分析来看『螺蛳粉』的销量巨高。因此这篇文章将爬取淘宝全部『螺蛳粉』商品数据,通过可视化分析淘宝螺蛳粉的一些秘密!
Python研究者
2021/03/05
8391
python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?
Airbnb爬取某地区房源的所有评论
本文代码由python requests+json爬取ajax加载 爱彼迎深圳所有房源借鉴修改而成。
xuing
2019/10/19
1.8K0
一篇文章教会你用Python爬取淘宝评论数据(写在记事本)
本文主要目标是采集淘宝的评价,找出客户所需要的功能。统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等。
前端皮皮
2020/11/26
7411
一篇文章教会你用Python爬取淘宝评论数据(写在记事本)
10行代码,Python实现爬取淘宝/天猫评论
要做数据分析首先得有数据才行。对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了。本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似的做法,不赘述。主要是分析页面以及用Python实现简单方便的抓取。 笔者使用的工具如下 Python 3——极其方便的编程语言。选择3.x的版本是因为3.x对中文处理更加友好。 Pandas——Python的一个附加库,用于数据整理。 IE 11——分析页面请求过程(其他类似的流量监控工具亦可)。 剩下的还有requests,re,这些都是P
BestSDK
2018/03/01
3.6K0
批量爬取淘宝数据
此代码主要批量爬取淘宝IPad搜索页的商品图片网址,商品名称,商品价格,购买人数,商品店铺,店铺地址等数据
码农GT038527
2024/11/15
2780
批量爬取淘宝数据
Ajax数据的爬取(淘女郎为例)
如果使用的是 Chrome 的话,可以首先选中 XHR 来更快速的找出获取数据的 API,如果在 XHR 里面没有再去 JS 里面一个个的寻找。
CN_Simo
2018/04/02
9940
Ajax数据的爬取(淘女郎为例)
吱口令生成淘宝BP抢购链接
BP链接:通俗一些就是将你需要购买产品的规格全部放到一个链接里,点击这个链接之后,能直接跳转到提交订单界面,省去了选择参数的过程。
小锋学长生活大爆炸
2025/05/24
1550
吱口令生成淘宝BP抢购链接
推荐阅读
相关推荐
基于LDA和baidu-aip的舆情分析项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验