最近被种草SK-II,本着学工科的严谨态度,决定用数据说话

爬取数据

参数解析

itemId是商品ID, sellerId 是卖家ID, currentPage是当前页码,目标url是https://rate.tmall.com/list_detail_rate.htm?itemId=15332134505&spuId=294841&sellerId=917264765&order=3&currentPage=1

正则解析

1.cnt字符串不要随便换行(否则可能报错:SyntaxError: EOL while scanning string literal),

2.findall(正则规则,字符串) 方法能够以列表的形式返回能匹配的字符串

#coding=utf-8
import recnt = '"aliMallSeller":False,"anony":True,"appendComment":"","attributes":"","attributesMap":"","aucNumId":"","auctionPicUrl":"","auctionPrice":"","auctionSku":"化妆品净含量:75ml","auctionTitle":"","buyCount":0,"carServiceLocation":"","cmsSource":"天猫","displayRatePic":"","displayRateSum":0,"displayUserLink":"","displayUserNick":"t***凯","displayUserNumId":"","displayUserRateLink":"","dsr":0.0,"fromMall":True,"fromMemory":0,"gmtCreateTime":1504930533000,"goldUser":False,"id":322848226237,"pics":["//img.alicdn.com/bao/uploaded/i3/2699329812/TB2hr6keQ.HL1JjSZFlXXaiRFXa_!!0-rate.jpg"],"picsSmall":"","position":"920-11-18,20;","rateContent":"送了面膜 和晶莹水 skii就是A 不错","rateDate":"2017-09-09 12:15:33","reply":"一次偶然的机会,遇见了亲,一次偶然的机会,亲选择了SK-II,生命中有太多的选择,亲的每一次选择都是一种缘分。让SK-II与您形影不离,任岁月洗礼而秀美如初~每日清晨拉开窗帘迎来的不仅止破晓曙光,还有崭新的自己~【SK-II官方旗舰店Lily】","sellerId":917264765,"serviceRateContent":"","structuredRateList":[],"tamllSweetLevel":3,"tmallSweetPic":"tmall-grade-t3-18.png","tradeEndTime":1504847657000,"tradeId":"","useful":True,"userIdEncryption":"","userInfo":"","userVipLevel":0,"userVipPic":""'nickname = []
regex = re.compile('"displayUserNick":"(.*?)"')
print regex
nk = re.findall(regex,cnt)
for i in nk:print i
nickname.extend(nk)
print nicknameak = re.findall('"auctionSku":"(.*?)"',cnt)
for j in ak:print jrc = re.findall('"rateContent":"(.*?)"',cnt)
for n in rc:print nrd = re.findall('"rateDate":"(.*?)"',cnt)
for m in rd:print m

输出:

完整源码

参考:http://www.jianshu.com/p/632a3d3b15c2

#coding=utf-8
import requests
import re
import sysreload(sys)
sys.setdefaultencoding('utf-8')#urls = []
#for i in list(range(1,500)):
#    urls.append('https://rate.tmall.com/list_detail_rate.htm?itemId=15332134505&spuId=294841&sellerId=917264765&order=1&currentPage=%s'%i)

tmpt_url = 'https://rate.tmall.com/list_detail_rate.htm?itemId=15332134505&spuId=294841&sellerId=917264765&order=1&currentPage=%d'
urllist = [tmpt_url%i for i in range(1,100)]
#print urllist

nickname = []
auctionSku = []
ratecontent = []
ratedate = []
headers = ''for url in urllist:content = requests.get(url).textnk = re.findall('"displayUserNick":"(.*?)"',content)  #findall(正则规则,字符串) 方法能够以列表的形式返回能匹配的字符串#print nk
    nickname.extend(nk)auctionSku.extend(re.findall('"auctionSku":"(.*?)"',content))ratecontent.extend(re.findall('"rateContent":"(.*?)"',content))ratedate.extend(re.findall('"rateDate":"(.*?)"',content))print (nickname,ratedate)for i in list(range(0,len(nickname))):text =','.join((nickname[i],ratedate[i],auctionSku[i],ratecontent[i]))+'\n'with open(r"C:\Users\HP\Desktop\codes\DATA\SK-II_TmallContent.csv",'a+') as file:file.write(text+' ')print("写入成功")

注:url每次遍历,正则匹配的数据都不止一个,所以使用extend追加而不是append

输出:

数据分析

1.要不要买——评论分析

import pandas as pd
from pandas import Series,DataFrame
import jieba
from collections import Counterdf = pd.read_csv(r'C:/Users/HP/Desktop/codes/DATA/SK-II_TmallContent.csv',encoding='gbk')  #否则中文乱码
#print df.columns
df.columns = ['useName','date','type','content']
#print df[:10]
tlist = Series.as_matrix(df['content']).tolist()
text = [i for i in tlist if type(i)!= float] #if type(i)!= float一定得加不然报错
text = ' '.join(text)
#print text

wordlist_jieba = jieba.cut(text,cut_all=True)
stoplist = {}.fromkeys([u'的', u'了', u'是',u'有'])  #自定义中文停词表,注意得是unicode
print stoplist
wordlist_jieba = [i for i in wordlist_jieba if i not in stoplist]  #and len(i) > 1
#print u"[全模式]: ", "/ ".join(wordlist_jieba)

count = Counter(wordlist_jieba)   #统计出现次数,以字典的键值对形式存储,元素作为key,其计数作为value。
result = sorted(count.items(), key=lambda x: x[1], reverse=True)  #key=lambda x: x[1]在此表示用次数作为关键字for word in result:print word[0], word[1]from pyecharts import WordClouddata = dict(result[:100])
wordcloud = WordCloud('高频词云',width = 800,height = 600)
wordcloud.add('ryana',data.keys(),data.values(),word_size_range = [30,300])
wordcloud

输出:

好用的频率占据榜首,只是不明白为什么要切分

2.买什么——类型分析

import pandas as pd
from pandas import Series,DataFramedf = pd.read_csv(r'C:/Users/HP/Desktop/codes/DATA/SK-II_TmallContent.csv',encoding='gbk')  #否则中文乱码
#print df.columns
df.columns = ['useName','date','type','content']
print df[:5]from pyecharts import Piepie = Pie('净含量购买分布')
v = df['type'].tolist()
print v[:5]#n1 = v.count(u'\u5316\u5986\u54c1\u51c0\u542b\u91cf:230ml')
n1 = v.count(u'化妆品净含量:75ml')
n2 = v.count(u'化妆品净含量:160ml')
n3 = v.count(u'化妆品净含量:230ml')
n4 = v.count(u'化妆品净含量:330ml')
#print n1,n2,n3,n4  #800 87 808 124

N = [n1,n2,n3,n4]
#print N  #[800,87,808,124]

attr = ['体验装','畅销经典','忠粉挚爱','屯货之选']
pie.add('ryana',attr,N,is_label_show = True)
pie

输出:

转载于:https://www.cnblogs.com/Ryana/p/7490845.html

爬虫实例:天猫商品评论爬虫相关推荐

  1. 天猫商品评论爬虫攻略【基于scrapy框架】(内附词云图绘制代码)

    目录 简介 网页展示 阿里云的反爬策略 我的反-反爬策略 代码实现 items类的定义 爬虫规则的定义 定义start_requests函数 定义回调函数parse() settings.py的参数修 ...

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

    本文以读取商品评论的json数据的方式来获取天猫商品评论,本文所采用的方法借鉴自知乎某大神(https://www.zhihu.com/question/36524413),可以非常方便地爬取特定商品 ...

  3. python3淘宝商品目录_Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)...

    一.前言 大家好,今天我要来讲讲一个比较实用的爬虫工具,抓取淘宝的关键字商品信息,即是: 输入关键字,按照价格等排序,抓取列出的商品信息以及下载图片,并且支持导出为Excel. 如果如下: 看完下面的 ...

  4. 通过爬取天猫商品评论实例分析Python爬取ajax动态生成的数据

    本文主要通过爬取天猫商品kindle的评论为例来说明利用python爬取ajax动态生成的数据的方式,本文使用的工具如下: 工具 chrome浏览器[寻找评论的动态链接] python3.5[执行代码 ...

  5. Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第三篇)

    查看Github 欢迎回看第一篇和第二篇. Python3中级玩家:Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇 Python3中级玩家:Python3中级玩家:淘宝天猫商品搜索爬虫 ...

  6. JD京东爬虫-商品评论爬虫-----附源码

    JD京东爬虫-商品评论爬虫 附源码 本教程适合初学者. 分析开始--------------- 打开京东商品链接,打开抓包工具(加载网页后打开抓包工具,发现没有抓到数据包,刷新网页就行),这边直接筛选 ...

  7. 2.天猫商品数据爬虫(已模拟登录)

    # 天猫商品数据爬虫 ## 使用教程 1. [点击这里下载][1]下载chrome浏览器 2. 查看chrome浏览器的版本号,[点击这里下载][2]对应版本号的chromedriver驱动 3. p ...

  8. Python爬虫学习教程:天猫商品数据爬虫

    天猫商品数据爬虫使用教程 下载chrome浏览器 查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动 pip安装下列包 pip install selenium pip in ...

  9. 词云分析——基于Python对天猫商品评论进行词云分析

    文章目录 0 引言 1 准备工作 2 主程序 3 分析与改进 4 可能出现的报错及解决方案 0 引言 什么是词云分析? 词云图,也叫文字云,是对文本中出现频率较高的"关键词"予以视 ...

最新文章

  1. 图像分类和目标检测技术有什么区别?
  2. centos7下搭建git和gitlab版本库
  3. Yii框架中使用SRBAC作为权限管理模块时遇到的问题
  4. Struts2.5版本之后Tomcat启动报错问题
  5. STL源码剖析 hashtable
  6. linux查看pid 对应的程序_资深程序员总结:分析 Linux 进程的 6 个方法,我全都告诉你...
  7. CentOS下调整VolGroup-lv_root分区大小
  8. 在python中、如果异常并未被处理或捕捉_7、Python-异常
  9. android mimetype类型,如何确定android中的MIME类型?
  10. 解决firefox和IE9对icon font字体的跨域访问问题
  11. 《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.4节识别在线设备...
  12. L1、L2、Batch Normalization、Dropout为什么能够防止过拟合呢?
  13. 实战开发,使用 Spring Session 与 Spring security 完成网站登录改造!!
  14. mysql-connector-java驱动包下载地址收藏 mysql驱动包下载地址
  15. 车票预订系统 搭建服务器,火车票网上订票系统的设计与实现.doc
  16. TwinCAT 3 首次运行报错4115
  17. Echocardiography Image Segmentation: A Survey(超声心动图图像分割方法综述--中文翻译)
  18. Windows CE SDHC驱动简析(1)-驱动架构(基于WinCE5.0 SMDK2410 BSP的SDHC驱动)
  19. CPU维护及故障处理
  20. NLP(二十五)实现ALBERT+Bi-LSTM+CRF模型

热门文章

  1. 软件正在吞噬整个世界_软件正在吞噬世界
  2. 攻防世界逆向初级训练
  3. 软件开发 自学_自学11个月内如何获得第一份有薪软件开发人员工作
  4. 《我爱这土地》-艾青
  5. 腹直肌整体(03):悬垂提臀抬腿
  6. 进口跨境电商erp系统
  7. 【UE4学习】【编辑器学习】PIE SIE区别
  8. M1卡一卡一密码的自动化实现
  9. 【洞见观点】金融领域隐私计算平台间的互联互通技术实践与研究
  10. 一键合成拼图怎么弄?安利三款照片拼图工具