今天我们就用python来抓取商品的评论进行分析和筛选 首先,我们随便打开一个天猫商品网页,点击累计评价,按F12审查元素(我用是的Chrome浏览器),点击Network,再点击 JS,这个时候我们点击追评就会跳出来一个链接,如下图 复制这个链接 https://rate.tmall.com/list_detail_rate.htm?itemId=522566798981&spuId=418424086&sellerId=1125378539&order=3¤tPage=1&append=1我们打开看看,初次评价(content),追加评价(rateContent),过了多少天追加的(day),其它信息就不一一列举了,大家自己分析分析 我们利用正则表达式获取到content 、rateContent、day的值 将评论数据进行筛选后写入表格 最终效果如图 贴入完整代码 import requests, re,openpyxl urls = #评论链接的数组 urls_add = #追评链接的数组 全部评论的链接url_ = 'https://rate.tmall.com/list_detail_rate.htm?itemId=522566798981&spuId=418424086&sellerId=1125378539&order=3¤tPage=%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是带图评论,无值就是全部评论),大家自己去研究吧 好啦分享就到这里,更多python学习记得关注我们哦 注:python学习关注我们企鹅qun: 8393 83 765 各类入门学习资料免费分享哦! |
|