淘寶商品的評價資料非常具有研究意義,可以嘗試作為神經網絡RNN的訓練原料。我們使用python中的request庫可以直接爬取評論資料,并不需要任何其他架構以及浏覽器支援。
1,我們要爬取的淘寶商品頁,我們可以看到位址欄中id=*************顯示的内容是商品在資料庫中的id
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9UFRPlXSq5kMRRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DM3cTNzUjMxIDNwUDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2,評論所在位置的真實url,以剛剛的寶貝為例,https://rate.taobao.com/feedRateList.htm?auctionNumId=553063221972¤tPageNum=1。在Url中展現了對應商品的ID以及評論目前所在的頁數。
3,使用request庫爬取評論對應的真實url。我們代碼的第一步是從寶貝頁面的url中擷取到評論的位址位置,然後進行request,并循環執行直到最後一頁,最後進行内容解析并将資料用pandas df進行存儲。
import requests
import json
import pandas as pd
def getCommodityComments(url):
if url[url.find('id=')+14] != '&':
id = url[url.find('id=')+3:url.find('id=')+15]
else:
id = url[url.find('id=')+3:url.find('id=')+14]
url = 'https://rate.taobao.com/feedRateList.htm?auctionNumId='+id+'¤tPageNum=1'
res = requests.get(url)
jc = json.loads(res.text.strip().strip('()'))
max = jc['total']
users = []
comments = []
count = 0
page = 1
while count<max:
res = requests.get(url[:-1]+str(page))
page = page + 1
jc = json.loads(res.text.strip().strip('()'))
jc = jc['comments']
for j in jc:
users.append(j['user']['nick'])
comments.append( j['content'])
#print(count+1,'>>',users[count],'\n ',comments[count])
count = count + 1
comment_dic = {'count': count+1,'user':users, 'comments':comments}
return pd.DataFrame(comment_dic)
getCommodityComments('https://item.taobao.com/item.htm?spm=a21bo.7929913.198967.23.5b274174WTT4T8&id=553063221972')
運作結果,其實淘寶已經為我們做了篩選,系統預設的評價全都沉底到了底部。。。