• 爬取亚马逊网站评论信息并存入excel表
import requests
from lxml import etree
import re
import xlwtfrom openpyxl import workbook  # 写入Excel表所用
from openpyxl import load_workbook  # 读取excel
# import matplotlib.pylab as plt
from xlrd import bookheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0','Cookie': 'x-wl-uid=1DVw4k4T/jAduWIfwW2jvf029Ha4Bgv/AJGjP/yRfJTdq26dr7oDdeEBdb6zOPUl0ByfsaKJ3GUY=; session-id-time=2082729601l; session-id=457-7649276-4174543; csm-hit=tb:DAHATSQRZZBWHWD4ZXYP+s-T61YJHRDEC6Y6S2VMTVZ|1573355007668&t:1573355007668&adb:adblk_no; ubid-acbcn=459-2457809-1906210; session-token="4sZGQQPKw9CJUOzJFLsTdS3FtlpqIyp0hyvhXL6RMOchbDf7p7YLDEL90YFps2Hl80fBT6uPmzQ00meCLYxsrjuoabX3+kz7OB+CLw8GaAYZB8J9oBBcJLBUsGs6LLm/EHQht5Tm0IpOKR0hz0GGtATgcpJXDfRoEdvNol+CUc3mXOMA5KmEfFWstdV+KwyzSGrGW+DdrAftisgZMl2stffIdhcOLh53B4tJwsR5awKqPrOqZF8uJg=="; lc-acbcn=zh_CN; i18n-prefs=CNY'
} #添加headers模拟浏览器防止被发现
hao = []
zhong = []
cha = [] #获取到的评论数存入里面
all_info_list = []
def parge_page(url):response = requests.get(url=url,headers=headers)#print(response) #测试一下看看也没有请求到网页text = response.texthtml = etree.HTML(text)quan = html.xpath('//div[@id="cm_cr-review_list"]/div') #获取到每个人的评论for i in quan:pinfen1 = i.xpath('.//span[@class="a-icon-alt"]/text()') #获取到每个人的评分几颗星pinlun = i.xpath('.//span[@data-hook="review-body"]/span/text()') #获取到每个人评论的字time = i.xpath('.//span[@data-hook="review-date"]/text()')color = i.xpath('.//a[@ data-hook="format-strip"]/text()')# size = i.xpath('.//i[@ class="a-icon-text-separator"]/text()')#print(pinlun)for pinfen in pinfen1:#print(pinlun)a = re.sub('颗星','',pinfen) #使用正则把后面不用的字符串替换为空,显得好看#print(a)list = {'评论':pinlun,'颜色和尺寸':color,'评分': a,'日期':time}print(list)info_list = [pinlun, color, a,time]all_info_list.append(info_list)# if a < str(2.0): #判断,小于3颗星就存入差评#     cha.append(a)# elif a < str(4.0): #小于4颗星就存入中评#     zhong.append(a)# else:#     hao.append(a) #否则都是好评def main():# url = 'https://www.amazon.cn/product-reviews/B074MFRPWL'# parge_page(url)for x in range(10): #获取100条评论,一页10条url = 'https://www.amazon.com/product-reviews/B07XGK5QXD/?pageNumber='+ str(x) #网站:if __name__ == '__main__':main()  # 调用main方法book = xlwt.Workbook(encoding='utf-8')sheet = book.add_sheet('sheet1')head = ['评论', '颜色和尺寸', '评分', '日期']  # 表头for h in range(len(head)):sheet.write(0, h, head[h])  # 写入表头i = 1for list in all_info_list:j = 0for data in list:sheet.write(i, j, data)j += 1i += 1book.save('评论信息.xlsx')print('完成',book)
如果还想爬取其他信息,自己添加Xpath!
  • 导入爬取的评论信息,并清洗数据
import pandas as pddata_path = '8-8026.xlsx'
df = pd.read_excel(data_path, encoding='gbk')
print(len(df))  # 长度
print(type(df))    # 数据类型
df = df.dropna()  # 消除缺失数据 NaN为缺失数据
print('清除缺失数据后:')
print(len(df))
print(type(df))
df = pd.DataFrame(df.iloc[:, 0].unique())  # 去掉第一列的重复数据;iloc[:, 0]表示索引每一行的第一列;
print(len(df))def str_unique(raw_str, reverse=False):"""比如:我喜欢喜欢喜欢喜欢喜欢喜欢该商品;去掉重复的“喜欢”:param raw_str::param reverse: 是否转置:return:"""if reverse:raw_str = raw_str[::-1]res_str = ''for i in raw_str:if i not in res_str:res_str += iif reverse:res_str = res_str[::-1]return res_strser1 = df.iloc[:, 0].apply(str_unique)   # 这时,因为索引了第一列,所以结果成了Series;
# print('df2', type(ser1))  # <class 'pandas.core.series.Series'>
df2 = pd.DataFrame(ser1.apply(str_unique, reverse=True))  # 再次生成DataFrame;
print('机械压缩去词后:')
print(len(df2))
print(type(df2))
print('------------------')df3 = df2[df2.iloc[:, 0].apply(len) >= 4]
print('短句过滤后:')
print(len(df3))
print('------------------')
  • 导入情感分析语料库,处理好评和差评
from snownlp import SnowNLP  # 情感分析语言处理库# 语义积极的概率,越接近1情感表现越积极
coms = df3.iloc[:, 0].apply(lambda x: SnowNLP(x).sentiments)
# print('情感分析后:')
positive_df = df3[coms >= 0.9]  # 好评
negative_df = df3[coms < 0.1]  # 差评print('好评')
print(positive_df)
print('差评')
print(negative_df)
  • jieba分词
import jiebadata1 = pd.read_csv('comments_post.txt',encoding='utf-8',header=None)
data2 = pd.read_csv('comments_neg.txt',encoding='utf-8',header=None)mycut = lambda s: ' '.join(jieba.cut(s))   # 自定义简单分词函数
data1 = data1[0].apply(mycut)
data2 = data2[0].apply(mycut)data1.to_csv('好评原因.txt',index=False,header=False,encoding='utf_8_sig')
data2.to_csv('差评原因.txt',index=False,header=False,encoding='utf_8_sig')
print(data2)
  • 主题分析
from gensim import corpora, models
#
post = pd.read_csv('好评原因.txt',encoding='utf-8',header=None,error_bad_lines=False)
neg = pd.read_csv('差评原因.txt',encoding='utf-8',header=None,error_bad_lines=False)
stop = pd.read_csv('stopwords.txt',header=None,sep='tipdm',engine='python')stop = [' ',''] + list(stop[0])   # 添加空格post[1] = post[0].apply(lambda s: s.split(' '))
post[2] = post[1].apply(lambda x: [i for i in x if i not in stop])neg[1] = neg[0].apply(lambda s: s.split(' '))
neg[2] = neg[1].apply(lambda x: [i for i in x if i not in stop])
'''正面主题分析'''
post_dict = corpora.Dictionary(post[2])  # 建立词典
post_corpus = [post_dict.doc2bow(i) for i in post[2]]
post_lda = models.LdaModel(post_corpus, num_topics=3, id2word=post_dict)  # LDA模型训练
for i in range(3):print("正面主题",post_lda.print_topic(i))   # 输出每个主题'''负面主题分析'''
neg_dict = corpora.Dictionary(neg[2])  # 建立词典
neg_corpus = [neg_dict.doc2bow(i) for i in neg[2]]
neg_lda = models.LdaModel(neg_corpus, num_topics=3, id2word=neg_dict)  # LDA模型训练
for i in range(3):print("负面主题",neg_lda.print_topic(i))   # 输出每个主题

亚马逊产品情感评论分析相关推荐

  1. python商品评论分析_亚马逊产品情感评论分析

    import requests from lxml import etree import re import xlwt from openpyxl import workbook # 写入Excel ...

  2. 亚马逊产品进行评论后没有显示是什么原因?

    1.违反亚马逊服务条款. 亚马逊将根据其政策违规程度,采取阻止其在评论界面显示.删除该评论或限制评论数量等惩罚性措施. 2.审核时间较长. 有时评论审核需要1-3天的时间,甚至评论时间还可能长达两周, ...

  3. Python实现通过ASIN爬取亚马逊产品评论

    Python实现通过ASIN爬取亚马逊产品评论 一.最近一直在研究爬取亚马逊评论相关的信息,亚马逊的反爬机制还是比较严格的,时不时就封cookie啊封ip啊啥的.而且他们的网页排版相对没有那么规则,所 ...

  4. 亚马逊产品描述计算机语言编辑,亚马逊Listing产品描述编辑讲解

    烂人的虚伪我从头看到尾 优质答主 01-24 TA获得超过2782个赞 自建listing,就是根据自己的产品,自己打造产品客户端的展示内容,让顾客了解自己的产品,有下单的欲望!建好如果效果不好,还要 ...

  5. 提高亚马逊产品排名的方法

    想要提高亚马逊产品排名,可以使用以下四种方法: 1.做关键词优化 关键词优化的第一步是在做新产品之前.通过亚马逊的搜索栏,你可以试着销售类似的产品.研究竞争对手和其他相关渠道进行关键词选择,分类和收集 ...

  6. 前亚马逊产品经理:TikTok的真正优势,并不是算法

    作者 | Eugene Wei 译者 | 小大非 策划 | 蔡芳芳 在前段时间的风波中,TikTok 的推荐算法一度成为大家争相讨论的话题中心.但在前亚马逊产品经理(同时也是亚马逊战略规划部第一位分析 ...

  7. springboot2 war页面放在那_亚马逊产品页面如何优化?这些技巧要知道

    #跨境电商# #电商运营# #创业# 亚马逊是增长最快的在线销售平台之一.如果卖家想获得尽可能多的潜在客户,可以在亚马逊上优化你的listing. 下面将为卖家介绍亚马逊产品页面优化的7个技巧,希望可 ...

  8. 亚马逊产品雷区_进入数字联系追踪的雷区

    亚马逊产品雷区 People across America and the world remain under strong advisories or outright orders to she ...

  9. 亚马逊购物用户体验分析

     [版权声明]:版权归作者Alite所有,转载时请以超链接形式标明文章原始出处和作者信息及本声明:http://www.alitedesign.com/  现在电子商务网站的设计,正面临着一系列的挑战 ...

最新文章

  1. 低层级GPU虚拟内存管理引论
  2. Github标星9k+,超赞的 PyTorch 资源大列表!
  3. 2021牛客多校3 - Black and white(思维+最小生成树)
  4. No relevant classes found. No output generated、metaObject连接错误
  5. MSSQL 如何实现 MySQL 的 limit 查询方式【转存】
  6. python time智能等待_Python Selenium智能等待
  7. 一个以标签为特色的社交网站——易寻
  8. ORA-01507: database not mounted
  9. 计算机PS个人规划目标,这里有一份PS个人陈述写作规划
  10. AI面试官来临,教你三招搞定他
  11. 虚拟机服务器系统蓝屏怎么办,虚拟机windows 2008 R2 系统蓝屏
  12. 热门应用借微信玩花样:一大波红包正在来袭
  13. 《程序员的创世传说》第三节 魔王与2012
  14. oracle,MyIbats sql [17004] 无效的列类型
  15. 3. 清除浮动的几种方式,及其使用
  16. CSDN每日一练:小桥流水人家
  17. 低代码平台为何要融入BPM
  18. 融资数据采集以及分析风险投资数据
  19. js 捕获子元素的 focus 事件
  20. 基于matlab的通信原理,基于Matlab的通信原理

热门文章

  1. iOS设备处理器的指令集
  2. html5 Audio标签
  3. Unity3d-英雄联盟登录界面(1-界面构造)
  4. 成都创弘星鹏:怎样办理抖音小店的营业执照
  5. SEO经验:新站如何做到秒收和快速排名首页
  6. 我们所说的网站关键词排名稳定
  7. SOLIDWORKS 2019 Essential Training SOLIDWORKS 2019基础教程 Lynda课程中文字幕
  8. 用css3径向渐变制作花纹背景
  9. 漫画 | 程序员为什么(爱吐槽)找不到妹子?
  10. 世界上第一台电脑ENIAC