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

歡迎訪問 生活随笔!

生活随笔

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

综合教程

爬虫学习笔记:天猫(淘宝)评论数据爬虫

發(fā)布時(shí)間:2023/12/3 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 爬虫学习笔记:天猫(淘宝)评论数据爬虫 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

1、雜語(yǔ)

2、目的和方法

2.1 目的

2.2 爬蟲方法

step1:獲取cookie信息與評(píng)論url地址

step2:獲取請(qǐng)求頭信息user-agent

step3:查看評(píng)論數(shù)據(jù)

step4:編寫程序

3、完整程序

4、總結(jié)


1、雜語(yǔ)

近期課程需要爬取淘寶、天貓商品評(píng)論信息,進(jìn)行數(shù)據(jù)挖掘分析和情感分析。在網(wǎng)上查找相關(guān)資料,翻閱一些博客和csdn文章,對(duì)淘寶天貓商品評(píng)論爬蟲有了一些了解,并且成功爬取到需要的數(shù)據(jù)。因此,在此對(duì)這幾天的學(xué)習(xí)做個(gè)總結(jié),也給有同樣需求的朋友一點(diǎn)參考。

2、目的和方法

2.1 目的

本文目的很明確,爬取天貓(淘寶)中某個(gè)商品的評(píng)論信息,信息包括商品的型號(hào)、用戶評(píng)論(主要分析這兩個(gè)信息)。

商品鏈接地址:https://detail.tmall.com/item.htm?spm=a230r.1.14.6.1fbd56fdVF7LzY&id=566140365862&cm_id=140105335569ed55e27b&abbucket=16

2.2 爬蟲方法

爬蟲說簡(jiǎn)單也簡(jiǎn)單,說難也難。掌握了爬蟲程序的邏輯,你就能實(shí)現(xiàn)爬蟲,當(dāng)然這一切還需要你有相關(guān)知識(shí)作為基石支撐。爬蟲本質(zhì)上是在模仿人的操作,請(qǐng)求網(wǎng)頁(yè),獲取數(shù)據(jù)。爬蟲天貓(淘寶)商品評(píng)論的這個(gè)過程,其實(shí)與你查看天貓(淘寶)評(píng)論的過程是一致的。下面具體介紹每一步操作,我會(huì)盡量介紹的詳細(xì)一些:

step1:獲取cookie信息與評(píng)論url地址

解釋:cookie是用目標(biāo)網(wǎng)站返回的驗(yàn)證密鑰,當(dāng)你申請(qǐng)?jiān)L問某個(gè)網(wǎng)站時(shí),該網(wǎng)站會(huì)核對(duì)你的cookie,驗(yàn)證成功才會(huì)將該網(wǎng)站的數(shù)據(jù)傳輸給你。因此,如果我們想要使用代碼訪問天貓商品評(píng)論,就需要天貓網(wǎng)站發(fā)送給我們的cookie,模擬登陸。

1、登陸天貓(賬戶、密碼登陸)

2、選中某款商品,如本文中選擇了美的的一款熱水器。然后點(diǎn)擊右鍵(Google瀏覽器右鍵)檢查,查看網(wǎng)頁(yè)源碼。

3、在network中找到list_detail_rate.htm文件,并在該文件中抓取header包。具體操作為:檢查后,得到出現(xiàn)下面頁(yè)面,點(diǎn)擊network,選擇顯示js文件,然后在name中尋找list_detail_rate.htm文件,查詢一遍.

如果發(fā)現(xiàn)沒有,則點(diǎn)擊刷新,在點(diǎn)擊累計(jì)評(píng)論,name中就會(huì)自動(dòng)加載出list_detail_rate.htm文件。PS:如果還沒有找到,在評(píng)論里面翻頁(yè),這樣name中一定2會(huì)出現(xiàn)該文件。

4、抓取cookie信息

在上一步中已經(jīng)抓取到list_detail_rate.htm文件的header,在header中包含了許多信息,包括cookie,每一頁(yè)評(píng)論url地址,以及你的瀏覽器信息。但是我們暫時(shí)只需要cookie信息和評(píng)論的url地址。

如下圖:該url地址即為該頁(yè)評(píng)論的url地址,分析其組成我們很容易就可以發(fā)現(xiàn),該url地址中的Page控制頁(yè)數(shù)。因此,每一頁(yè)評(píng)論的url地址我們就能確定了。下拉即可發(fā)現(xiàn),cookie居然也在這里面。粘貼它,備用。

?

step2:獲取請(qǐng)求頭信息user-agent

方法一:網(wǎng)上直接搜索請(qǐng)求頭user-agent,隨意粘貼一個(gè)就能夠使用。

?方法二:在上一步的header里面下拉,找到user-agent,粘貼即可。

step3:查看評(píng)論數(shù)據(jù)

繼續(xù)查看list_detail_rata.htm文件,點(diǎn)擊preview,再將數(shù)據(jù)展開,可以發(fā)現(xiàn)jsonp文件中包含了我們需要的評(píng)論數(shù)據(jù)信息,包括商品評(píng)論、評(píng)論時(shí)間,有無追加,商品型號(hào)、用戶名等信息。如下圖

?

從這兩張圖我們能確定,我們只需要請(qǐng)求到這個(gè)文件,在對(duì)這個(gè)文件解析即可獲得我們需要的商品評(píng)論。從中我們能得到商品評(píng)論的頁(yè)數(shù),99頁(yè)、商品評(píng)論數(shù)據(jù),以及所評(píng)論的商品型號(hào)。下面只需要編寫程序提取其中的信息即可。

step4:編寫程序

1、導(dǎo)入庫(kù)文件,requests,re,pd,time

#導(dǎo)入庫(kù)文件
import requests
from bs4 import  BeautifulSoup as bs4
import time
import re
import pandas as pd

2、建立請(qǐng)求頭(headers),包含cookie、user-agent,referer(商品鏈接)

def get_content(url_lists):headers = {#cookie網(wǎng)絡(luò)驗(yàn)證,需要先登陸,獲取登陸以后的網(wǎng)絡(luò)驗(yàn)證cookie,需要更改'cookie': 't=38c495563775b3b0c8a41a65da4f7c47; _tb_token_=5ebefe73457bb; cookie2=1f6389e4d007b9668ae799044835a590; dnk=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; hng=CN%7Czh-CN%7CCNY%7C156; tracknick=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; lid=%E6%97%A0%E5%BF%83%E6%98%8E%E6%9C%A8; lgc=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; enc=Zq6icfNyFHjVohVzMeSf%2BIfPHJ7hcR9TqFheMaSRC%2FbJR39SmHLQSGpQ5oMsZ8tqnhSNSH9anWnMyQc%2BPrkcRQ%3D%3D; cna=9KU5FwXkXiUCAbfYlO7jKln+; _m_h5_tk=1e5664f69d74ee30e656464a9483eb50_1589792673771; _m_h5_tk_enc=84bb8b2e3012e443dc0228361cb891bb; uc1=cookie14=UoTUM2jvNUqS2A%3D%3D&cookie16=UtASsssmPlP%2Ff1IHDsDaPRu%2BPw%3D%3D&existShop=false&cookie21=UtASsssmeW6lpyd%2BB%2B3t&cookie15=URm48syIIVrSKA%3D%3D&pas=0; uc3=id2=UU20t7pwAehm4Q%3D%3D&lg2=W5iHLLyFOGW7aA%3D%3D&nk2=rUeYFADn4ZE%3D&vt3=F8dBxGZuHaPt28arGzQ%3D; uc4=nk4=0%40r7Yq6ez6%2FiKCVsunPByL5FY%2Bsg%3D%3D&id4=0%40U2%2Fz8oplkCFeccA5ZVXogFNjFYNM; _l_g_=Ug%3D%3D; unb=2562036378; cookie1=Vv1zqw8QCKeLxmtxWLfD1h937JwOrbk70nwWm1OBXEY%3D; login=true; cookie17=UU20t7pwAehm4Q%3D%3D; _nk_=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; sgcookie=EKhZbjs6mP8oKvbKrBZeV; sg=%E6%9C%A88b; csg=21f92331; l=eBIW36YmQZ6s21ejBO5Nlurza77OBQRfGsPzaNbMiIHca6CVsFi_tNQDiUeH-dtjgtCEietzEdARfRH98Ezd0ZqhuJ1REpZZnxvO.; isg=BMHBO7ure9P4wJfmuEBqzsb80A3b7jXgde5qciMUQEhlCuXcaz-isPtM7H5MAs0Y',#商品的鏈接地址,每個(gè)商品鏈接不同需要更改'referer': 'https://detail.tmall.com/item.htm?spm=a230r.1.14.6.1fbd56fdVF7LzY&id=566140365862&cm_id=140105335569ed55e27b&abbucket=16',#電腦瀏覽器信息瀏覽器,這個(gè)信息是固定的,可以不變'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',}

3、獲取評(píng)論url地址,根據(jù)之前發(fā)現(xiàn)的商品評(píng)論url地址特點(diǎn),構(gòu)建函數(shù)。忘記了可以看看step1的第四步。

#獲取評(píng)論url地址
def get_url(num):page_url = []#list_detail_rate.htm文件中保存了商品評(píng)論信息,因此需求請(qǐng)求該url地址,# 這個(gè)地址的尋找方法是:首先,確定你要爬蟲的頁(yè)面,點(diǎn)擊右鍵的檢查,# 然后再點(diǎn)擊network,在里面尋找list_detail_rate.htm包文件,在該文件的headers信息中可以找到url信息urlfirst = 'https://rate.tmall.com/list_detail_rate.htm?itemId=566140365862&spuId=1340127862&sellerId=1132304427&order=3&currentPage='urllast = '&append=1&content=1&tagId=&posi=&picture=0&groupId=&ua=098%23E1hve9vovZ9vUvCkvvvvvjiPn2c96jEbPFdW0jrCPmP90jl8Ps5yAjinR2FpAjEb9phv8cMGclG7zYswzpj87kdoE93ukbj2J1%2BhTKuUAbt39JW2g08Ly0eEpIEmdphvmpvh9IbzYAmwR86CvvyvCv4m%2Bfh9FWVrvpvEvvCZvli4UU2pRphvCvvvvvmCvpvWzC1EOUFNznswjo143QhvCvvhvvm5vpvhvvmv9FyCvvpvvvvv2QhvCvvvMM%2FtvpvIvvvvvhCvvvvvvUUFphvUqvvv9krvpvQvvvmm86CvmVWvvUUdphvUIgyCvvOUvvVvJheivpvUvvmvR7I4ueWEvpCWmUDfvvwdiNLh1CeXaHFXS47BhC3qVUcnDOmOjLEc6acEKBmAVAdvaNoxdX3l8bmxfwoOd56OfwLvaB4AVAdvaNoxdX31bbmxfJmK59hCvvOvCvvvphmCvpvWzC1EOUFSznswSpl4RphvCvvvvvvtvpvhvvvvvv%3D%3D&itemPropertyId=&itemPropertyIndex=&userPropertyId=&userPropertyIndex=&rateQuery=&location=&needFold=0&_ksTS=1589850461438_1131&callback=jsonp1132'for i in range(1,num,1):url = urlfirst+str(i)+urllastpage_url.append(url)return page_url

4、請(qǐng)求數(shù)據(jù),使用requests庫(kù),requests參數(shù),url地址為目標(biāo)地址,headers為傳輸?shù)尿?yàn)證信息,傳輸回來為html源碼,需要以text格式查看。

comment = []  # 定義評(píng)論字段auctionSku = []  # 定義熱水器型號(hào)信息for i in range(0,len(url_lists)):print('正在爬取第{}頁(yè)評(píng)論'.format(str(i+1)))#請(qǐng)求數(shù)據(jù)data = requests.get(url_lists[i],headers = headers).texttime.sleep(10)#數(shù)據(jù)提取comment.extend(re.findall('rateContent":"(.*?)"fromMall"', data))auctionSku.extend((re.findall('"auctionSku":"(.*?)"',data)))

5、數(shù)據(jù)保存,保存為數(shù)表形式,存儲(chǔ)格式為xls。

 #定義數(shù)表com = pd.DataFrame()com['型號(hào)'] = auctionSkucom['評(píng)論'] = commentprint(com)com.to_excel('商品評(píng)論數(shù)據(jù).xls')

6、主函數(shù)

if __name__ == '__main__':num = 99 #頁(yè)數(shù),商品總頁(yè)數(shù)為99頁(yè)url_list = get_url(num)get_content(url_list)

3、完整程序

# -*- coding:utf-8 -*-
#大明王#天貓美的熱水器商品評(píng)論爬蟲
#美的電熱水器電家用衛(wèi)生間洗澡淋浴60/50升小型儲(chǔ)水式即熱一級(jí)TK1,型號(hào):F6021-TK1(HEY)#導(dǎo)入庫(kù)文件
import requests
from bs4 import  BeautifulSoup as bs4
import time
import re
import pandas as pd#獲取評(píng)論url地址
def get_url(num):page_url = []#list_detail_rate.htm文件中保存了商品評(píng)論信息,因此需求請(qǐng)求該url地址,# 這個(gè)地址的尋找方法是:首先,確定你要爬蟲的頁(yè)面,點(diǎn)擊右鍵的檢查,# 然后再點(diǎn)擊network,在里面尋找list_detail_rate.htm包文件,在該文件的headers信息中可以找到url信息urlfirst = 'https://rate.tmall.com/list_detail_rate.htm?itemId=566140365862&spuId=1340127862&sellerId=1132304427&order=3&currentPage='urllast = '&append=1&content=1&tagId=&posi=&picture=0&groupId=&ua=098%23E1hve9vovZ9vUvCkvvvvvjiPn2c96jEbPFdW0jrCPmP90jl8Ps5yAjinR2FpAjEb9phv8cMGclG7zYswzpj87kdoE93ukbj2J1%2BhTKuUAbt39JW2g08Ly0eEpIEmdphvmpvh9IbzYAmwR86CvvyvCv4m%2Bfh9FWVrvpvEvvCZvli4UU2pRphvCvvvvvmCvpvWzC1EOUFNznswjo143QhvCvvhvvm5vpvhvvmv9FyCvvpvvvvv2QhvCvvvMM%2FtvpvIvvvvvhCvvvvvvUUFphvUqvvv9krvpvQvvvmm86CvmVWvvUUdphvUIgyCvvOUvvVvJheivpvUvvmvR7I4ueWEvpCWmUDfvvwdiNLh1CeXaHFXS47BhC3qVUcnDOmOjLEc6acEKBmAVAdvaNoxdX3l8bmxfwoOd56OfwLvaB4AVAdvaNoxdX31bbmxfJmK59hCvvOvCvvvphmCvpvWzC1EOUFSznswSpl4RphvCvvvvvvtvpvhvvvvvv%3D%3D&itemPropertyId=&itemPropertyIndex=&userPropertyId=&userPropertyIndex=&rateQuery=&location=&needFold=0&_ksTS=1589850461438_1131&callback=jsonp1132'for i in range(1,num,1):url = urlfirst+str(i)+urllastpage_url.append(url)return page_url
def get_content(url_lists):headers = {#cookie網(wǎng)絡(luò)驗(yàn)證,需要先登陸,獲取登陸以后的網(wǎng)絡(luò)驗(yàn)證cookie,需要更改'cookie': 't=38c495563775b3b0c8a41a65da4f7c47; _tb_token_=5ebefe73457bb; cookie2=1f6389e4d007b9668ae799044835a590; dnk=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; hng=CN%7Czh-CN%7CCNY%7C156; tracknick=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; lid=%E6%97%A0%E5%BF%83%E6%98%8E%E6%9C%A8; lgc=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; enc=Zq6icfNyFHjVohVzMeSf%2BIfPHJ7hcR9TqFheMaSRC%2FbJR39SmHLQSGpQ5oMsZ8tqnhSNSH9anWnMyQc%2BPrkcRQ%3D%3D; cna=9KU5FwXkXiUCAbfYlO7jKln+; _m_h5_tk=1e5664f69d74ee30e656464a9483eb50_1589792673771; _m_h5_tk_enc=84bb8b2e3012e443dc0228361cb891bb; uc1=cookie14=UoTUM2jvNUqS2A%3D%3D&cookie16=UtASsssmPlP%2Ff1IHDsDaPRu%2BPw%3D%3D&existShop=false&cookie21=UtASsssmeW6lpyd%2BB%2B3t&cookie15=URm48syIIVrSKA%3D%3D&pas=0; uc3=id2=UU20t7pwAehm4Q%3D%3D&lg2=W5iHLLyFOGW7aA%3D%3D&nk2=rUeYFADn4ZE%3D&vt3=F8dBxGZuHaPt28arGzQ%3D; uc4=nk4=0%40r7Yq6ez6%2FiKCVsunPByL5FY%2Bsg%3D%3D&id4=0%40U2%2Fz8oplkCFeccA5ZVXogFNjFYNM; _l_g_=Ug%3D%3D; unb=2562036378; cookie1=Vv1zqw8QCKeLxmtxWLfD1h937JwOrbk70nwWm1OBXEY%3D; login=true; cookie17=UU20t7pwAehm4Q%3D%3D; _nk_=%5Cu65E0%5Cu5FC3%5Cu660E%5Cu6728; sgcookie=EKhZbjs6mP8oKvbKrBZeV; sg=%E6%9C%A88b; csg=21f92331; l=eBIW36YmQZ6s21ejBO5Nlurza77OBQRfGsPzaNbMiIHca6CVsFi_tNQDiUeH-dtjgtCEietzEdARfRH98Ezd0ZqhuJ1REpZZnxvO.; isg=BMHBO7ure9P4wJfmuEBqzsb80A3b7jXgde5qciMUQEhlCuXcaz-isPtM7H5MAs0Y',#商品的鏈接地址,每個(gè)商品鏈接不同需要更改'referer': 'https://detail.tmall.com/item.htm?spm=a230r.1.14.6.1fbd56fdVF7LzY&id=566140365862&cm_id=140105335569ed55e27b&abbucket=16',#電腦瀏覽器信息瀏覽器,這個(gè)信息是固定的,可以不變'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',}comment = []  # 定義評(píng)論字段auctionSku = []  # 定義熱水器型號(hào)信息for i in range(0,len(url_lists)):print('正在爬取第{}頁(yè)評(píng)論'.format(str(i+1)))#請(qǐng)求數(shù)據(jù)data = requests.get(url_lists[i],headers = headers).texttime.sleep(10)#數(shù)據(jù)提取comment.extend(re.findall('rateContent":"(.*?)"fromMall"', data))auctionSku.extend((re.findall('"auctionSku":"(.*?)"',data)))#定義數(shù)表com = pd.DataFrame()com['型號(hào)'] = auctionSkucom['評(píng)論'] = commentprint(com)com.to_excel('商品評(píng)論數(shù)據(jù).xls')if __name__ == '__main__':num = 99 #頁(yè)數(shù)url_list = get_url(num)get_content(url_list)

4、總結(jié)

萬事開頭難,加油,致愛學(xué)習(xí),努力堅(jiān)強(qiáng)的你。see you

好書推薦:《你當(dāng)像鳥飛往你的山》

總結(jié)

以上是生活随笔為你收集整理的爬虫学习笔记:天猫(淘宝)评论数据爬虫的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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