用Python爬取天猫的追评并分析筛选后保存到Excel

现在天猫淘宝上面刷单的很多,我们如何去得到有效的评论来判断这款商品到底该不该买呢?

今天我们就用python来抓取商品的评论进行分析和筛选

进群:700341555获取Python入门学习资料!


首先,我们随便打开一个天猫商品网页,点击累计评价,按F12审查元素(我用是的Chrome浏览器),点击Network,再点击 JS,这个时候我们点击追评就会跳出来一个链接,如下图

用Python爬取天猫的追评并分析筛选后保存到Excel

用Python爬取天猫的追评并分析筛选后保存到Excel

复制这个链接 https://rate.tmall.com/list_detail_rate.htm?itemId=522566798981&spuId=418424086&sellerId=1125378539&order=3&currentPage=1&append=1我们打开看看,初次评价(content),追加评价(rateContent),过了多少天追加的(day),其它信息就不一一列举了,大家自己分析分析

用Python爬取天猫的追评并分析筛选后保存到Excel

我们利用正则表达式获取到content 、rateContent、day的值

用Python爬取天猫的追评并分析筛选后保存到Excel

将评论数据进行筛选后写入表格

用Python爬取天猫的追评并分析筛选后保存到Excel

最终效果如图

用Python爬取天猫的追评并分析筛选后保存到Excel


贴入完整代码


import requests, re,openpyxl

urls =[] #评论链接的数组

urls_add =[] #追评链接的数组

#全部评论的链接

url_ = 'https://rate.tmall.com/list_detail_rate.htm?itemId=522566798981&spuId=418424086&sellerId=1125378539&order=3&currentPage=%s'

#追加评论的链接

url_add = url_+'&append=1'

pages = 10 #获取多少页全部评论

for i in range(1, pages):

urls.append(url_%i)

pages_add = 10 #获取多少页追评(天猫有时候会限制,爬不了太多)

for i in range(1, pages):

urls_add.append(url_add%i)

#储存全部评论内容的数组

rate_content = []

#追评的数组

content_add = []

#多少天追加的数组

days_add = []

# 循环抓取数据---全部评论

for url in urls:

content = requests.get(url).text

#获取评论

rate_content.extend(re.findall(re.compile('"rateContent":"(.*?)","rateDate"'),content))

# 循环抓取数据---追加评论

for url in urls_add:

content = requests.get(url).text

#获取追加评论

content_add.extend(re.findall(re.compile('"content":"(.*?)","days"'),content))

#获取多少天后追加的评价

days_add.extend(re.findall(re.compile('"days":(d+),'),content))

#将数据写入excel表格

wb = openpyxl.Workbook()

sheet = wb.get_active_sheet()

sheet.title = '全部评论' #设置默认sheet1的名称为‘全部评论’

wb.create_sheet(title = '追加评论') #创建一个追加评论的sheet

sheet_add = wb.get_sheet_by_name('追加评论') #获取这个sheet

#全部评论要写入表格的内容

array = []

#追评要写入表格的内容(多少天追加,追加内容)

array_add = [[],[]]

#全部评论

#对评论进行一次筛选

for i in range(0, len(rate_content)):

#少于10个字的删除,默认评论删除(大家可以自己修改条件)

if len(rate_content[i])> 10 and '此用户没有填写评论' not in rate_content[i]:

array.append(rate_content[i])

#将数据写入表格中

for i in range(0, len(array)):

sheet.cell(row = i+1, column = 1).value= array[i]

#追加评论

#对评论进行一次筛选

for i in range(0, len(content_add)):

#少于8个字的删除,当天追加的删除(大家可以自己修改条件)

if len(content_add[i]) > 8 and int(days_add[i]) > 0:

array_add[0].append(days_add[i])

array_add[1].append(content_add[i])

#将数据写入表格中

for i in range(0,len(array_add)):

for j in range(0, len(array_add[i])):

sheet_add.cell(row = j+1, column = i+1).value= array_add[i][j]

wb.save('天猫商品评论.xlsx')

print('表格保存完毕!')


大家可以根据数据自己去写条件去筛选,以后看评论就不用一页一页的翻了,也要少看很多虚假评论!

关于淘宝上的评论也是一样的,就不是append了,是rateType(值为-1是差评,0是中评,1是好评,2是追评,3是带图评论,无值就是全部评论),大家自己去研究吧


抛砖引玉,如有帮助,请关注!!!不定时更新有用内容哟~~

猜你喜欢

转载自blog.csdn.net/weixin_44138053/article/details/86611269
今日推荐