天天看點

python request 淘寶評論資料簡易爬蟲

淘寶商品的評價資料非常具有研究意義,可以嘗試作為神經網絡RNN的訓練原料。我們使用python中的request庫可以直接爬取評論資料,并不需要任何其他架構以及浏覽器支援。

1,我們要爬取的淘寶商品頁,我們可以看到位址欄中id=*************顯示的内容是商品在資料庫中的id

python request 淘寶評論資料簡易爬蟲

2,評論所在位置的真實url,以剛剛的寶貝為例,https://rate.taobao.com/feedRateList.htm?auctionNumId=553063221972&currentPageNum=1。在Url中展現了對應商品的ID以及評論目前所在的頁數。

python request 淘寶評論資料簡易爬蟲

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')

           

運作結果,其實淘寶已經為我們做了篩選,系統預設的評價全都沉底到了底部。。。

python request 淘寶評論資料簡易爬蟲
python request 淘寶評論資料簡易爬蟲