日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

爬取淘宝商品评论——2020-8月

發(fā)布時(shí)間:2023/12/9 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取淘宝商品评论——2020-8月 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文具有時(shí)效性,指不定哪天失效

時(shí)間:2020-8

網(wǎng)頁(yè)分析

一般來(lái)說(shuō),請(qǐng)求的數(shù)據(jù) 會(huì)有幾種可能:

1、很簡(jiǎn)單的html頁(yè)面(靜態(tài)網(wǎng)頁(yè)),就直接requests就可以請(qǐng)求成功;

2、js渲染的頁(yè)面 ,很常見(jiàn),requests請(qǐng)求一堆js數(shù)據(jù);

3、需要登錄才能獲取,登錄后,把cookie 加入請(qǐng)求;

4、json數(shù)據(jù)

顯然淘寶不是靜態(tài)網(wǎng)頁(yè),直接打開(kāi)某個(gè)商品(我們這里選擇Nike旗艦店的一雙鞋),選擇評(píng)論頁(yè)面,按F12進(jìn)入調(diào)試頁(yè)面頁(yè)面,選擇network,然后點(diǎn)擊評(píng)論的下一頁(yè)觀察頁(yè)面請(qǐng)求


放大看一下

顯然評(píng)論數(shù)據(jù)就藏在list_detail開(kāi)頭的響應(yīng)中,那我們就直接看標(biāo)頭(按照慣例,直接復(fù)制標(biāo)題鏈接打開(kāi),并不能得到想要的信息,那就是還需要請(qǐng)求標(biāo)頭的信息):

一般來(lái)說(shuō),這么長(zhǎng)的請(qǐng)求是比較難看的,通常需要多觀察幾頁(yè)

重點(diǎn)在前面那部分,sellerid應(yīng)該是商品id,currentpage是當(dāng)前評(píng)論頁(yè),并且 &ua= 后面那一段長(zhǎng)長(zhǎng)的字符并不相同,或許可以把它去掉,待會(huì)代碼試試。
再看看請(qǐng)求標(biāo)頭需要什么:

authority + path 就是上面的請(qǐng)求url,其他的language,encoding,每個(gè)網(wǎng)頁(yè)基本都一樣的,可加可不加。
我們需要的是cookie(記錄客戶(hù)端的用戶(hù)信息,登錄后會(huì)有),referer(告訴服務(wù)器該網(wǎng)頁(yè)是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的),user-agent(爬蟲(chóng)老朋友了,瀏覽器標(biāo)識(shí))

代碼分析

開(kāi)始寫(xiě)代碼試試

import requestspage = 1 #最終代碼改成for循環(huán)可以遍歷下載path = 'https://rate.tmall.com/list_detail_rate.htm?itemId=612891862405&spuId=1532072041&sellerId=890482188&order=3&currentPage=' url = path + str(page) #原始鏈接加上頁(yè)面headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.59 Safari/537.36 Edg/85.0.564.30',#referer隨便填個(gè)淘寶網(wǎng)頁(yè)應(yīng)該都能用'referer': 'https://detail.tmall.com/item.htm?spm=a230r.1.14.80.675374f6O2Yqxg&id=612891862405&ns=1&abbucket=15','cookie': '復(fù)制你的cookie在這里'} res = requests.get(url,headers = headers)

直接打印看看有沒(méi)有獲取成功:

可以看到數(shù)據(jù)是在的里面,雖然看起來(lái)亂七八糟。我們把里面的json提取出來(lái)就好:

import re js_str = re.search('\{.*}',res.text) js_str.group()


用josn加載會(huì)直觀看出鍵值對(duì):

import jsonjs_dict = json.loads(js_str.group()) js_dict

取出需要的屬性(我這里只選擇評(píng)論,商品屬性,時(shí)間):

分析到這里已經(jīng)足夠了,接下來(lái)可以根據(jù)自己需求寫(xiě)代碼:

最終代碼:

import requests import re import json import time import pandas as pddef get_comments():for page in range(1,20):link = 'https://rate.tmall.com/list_detail_rate.htm?itemId=612891862405&spuId=1532072041&sellerId=890482188&order=3&currentPage='url = link + str(page) #原始鏈接加上頁(yè)面數(shù)headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.59 Safari/537.36 Edg/85.0.564.30','referer': 'https://detail.tmall.com/item.htm?spm=a230r.1.14.80.675374f6O2Yqxg&id=612891862405&ns=1&abbucket=15','cookie': '復(fù)制你的cookie到這里'}res = requests.get(url,headers = headers)js_str = re.search('\{.*}',res.text)js_dict = json.loads(js_str.group())time.sleep(7)dict_content = {}rateContent = [] #評(píng)論auctionSku = [] #款式rateDate = [] #時(shí)間for i in range(len(js_dict['rateDetail']['rateList'])):rateContent.append(js_dict['rateDetail']['rateList'][i]['rateContent'])auctionSku.append([js_dict['rateDetail']['rateList'][i]['auctionSku']])rateDate.append([js_dict['rateDetail']['rateList'][i]['rateDate']])dict_content['rateContent'] = rateContentdict_content['auctionSku'] = auctionSkudict_content['rateDate'] = rateDate#dict_content['id'] = '890482188'df = pd.DataFrame(dict_content)if page == 1:df.to_csv('./nike.csv',encoding='utf_8_sig')else:df.to_csv('./nike.csv',mode = 'a',header= False,encoding='utf_8_sig')print('已保存第',page,'頁(yè)','這一頁(yè)有',i,'條評(píng)論')if __name__ == '__main__': get_comments()

詞云

補(bǔ)充

這僅僅只是一個(gè)商品的評(píng)論頁(yè)面,能做的事還有很多,比如獲取商品的屬性,價(jià)格,月銷(xiāo)量;遍歷多個(gè)商品,店鋪;對(duì)獲取到的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析;

并且實(shí)際上搜索頁(yè)面的商品數(shù)據(jù)就在網(wǎng)頁(yè)源代碼中:
user_id是商品id,并且在這里可以直觀的獲取價(jià)格,銷(xiāo)量,評(píng)論數(shù)(這對(duì)我們控制上述代碼控制for循環(huán)很有用)

總結(jié)

以上是生活随笔為你收集整理的爬取淘宝商品评论——2020-8月的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。