主頁 > 知識庫 > python 爬取騰訊視頻評論的實(shí)現(xiàn)步驟

python 爬取騰訊視頻評論的實(shí)現(xiàn)步驟

熱門標(biāo)簽:申請辦個(gè)400電話號碼 400電話辦理費(fèi)用收費(fèi) 高德地圖標(biāo)注字母 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 騰訊地圖標(biāo)注有什么版本 外呼系統(tǒng)前面有錄音播放嗎 千呼ai電話機(jī)器人免費(fèi) 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 柳州正規(guī)電銷機(jī)器人收費(fèi)

一、網(wǎng)址分析

查閱了網(wǎng)上的大部分資料,大概都是通過抓包獲取。但是抓包有點(diǎn)麻煩,嘗試了F12,也可以獲取到評論。以電視劇《在一起》為例子。評論最底端有個(gè)查看更多評論猜測過去應(yīng)該是 Ajax 的異步加載。
網(wǎng)上的大部分都是構(gòu)建評論的網(wǎng)址,通過 requests 獲取,正則表達(dá)式進(jìn)行數(shù)據(jù)處理。本文也利用該方法進(jìn)行數(shù)據(jù)處理,其實(shí)利用 scrapy 會更簡單。
根據(jù)前輩給出的經(jīng)驗(yàn),順利找到了評論所在的鏈接。

在新標(biāo)簽中打開,該網(wǎng)址的鏈接。

評論都在"content":"xxxxx"里面,所有可以通過正則表達(dá)式獲取。
那么現(xiàn)在要開始構(gòu)建網(wǎng)址,找到其規(guī)律。
在查找評論鏈接的過程中無意發(fā)現(xiàn),點(diǎn)擊影評旁邊的評論總數(shù),可以獲取到更為干凈的評論界面。結(jié)果是一樣的。

既然是要爬取所有的評論,所以知道評論數(shù)是必不可少的。

再通過F12獲取到評論鏈接,找到網(wǎng)址的規(guī)律,構(gòu)建網(wǎng)址,加載三四個(gè)評論就行了。這里加載了四個(gè)網(wǎng)址。把所有網(wǎng)址復(fù)制到文本文件中,進(jìn)行對比分析。

觀察發(fā)現(xiàn)只有 cursor 和 source 進(jìn)行了改變,其他是不變的,二 source 是在第一個(gè)的基礎(chǔ)上進(jìn)行加一操作,所以只需要獲取到 cursor 即可。我們打開一個(gè)評論鏈接的網(wǎng)址,我們可以知道,cursor 其實(shí)是上一頁 最后一個(gè)用戶的ID碼。所以我們只需要在爬取上一頁的時(shí)候一起爬蟲了。然后就可以構(gòu)建網(wǎng)址。

二、代碼編寫

這個(gè)代碼還是簡單的。套用之前上課做的模板就可以直接進(jìn)行爬蟲了。
通過正則表達(dá)式獲取評論,返回一個(gè)列表;
正則表達(dá)式獲得的 cursor 碼是列表,所以要轉(zhuǎn)化為字符串使用;
source 很簡單了,直接在上一個(gè)的基礎(chǔ)上加一即可。

def getComment(html): # 爬取單頁評論

 findeComment = re.compile(r'"content":"(.*?)"', re.S)
 comment = re.findall(findeComment, html)
 # print(comment)
 return comment

def getCursor(html): # 獲取下一頁的cursor碼
 findeCursor = re.compile(r'"last":"(.*?)"', re.S)
 cursor = re.findall(findeCursor, html)[0]
 # print(cursor)
 return cursor


def getSource(source): # 獲取下一頁的source碼
 source = int(source) + 1
 return str(source)

有點(diǎn)難度的可能就送弄代理吧,但是代理可以模仿網(wǎng)上其他人的寫法,所以還是不是很難。

#添加用戶代理

def ua(uapools):
 thisua = random.choice(uapools)
 # print(thisua)
 headers = ("User-Agent", thisua)
 opener = urllib.request.build_opener()
 opener.addheaders = [headers]
 # 設(shè)置為全局變量
 urllib.request.install_opener(opener)

三、遇到的問題

1. 獲取評論的時(shí)候也將子評論爬蟲進(jìn)去了。

仔細(xì)查看了源碼,發(fā)現(xiàn)評論主要在 data 下面的 oriCommList 列表里,其他范圍的評論為子評論。個(gè)人認(rèn)為子評論也算有效評論,目前不打算處理。

2. 獲取全部評論數(shù),直接通過 requests 獲取不到

嘗試了 xpath 和 requests 發(fā)現(xiàn)不能獲取全部評論數(shù),所以目前只能通過 selenium 獲取,但是 selenium 效率太低了,就獲取一個(gè)評論總數(shù),還不如打開源碼直接修改評論總數(shù),所以暫時(shí)沒有修改

3. 評論總數(shù)數(shù)據(jù)太大

因?yàn)橹芭老x過很多網(wǎng)站,同一個(gè) user-agent 很容易被 ban ,所以目前構(gòu)建了用戶代理,然后進(jìn)行隨機(jī)。其實(shí)還想加一個(gè) ip 代理的,但是使用了 ip 代理的網(wǎng)址,上面寫的正常的 ip ,在使用的時(shí)候,拒絕連接。也嘗試過構(gòu)建代理池。但是代理池一般都是使用docker 和 Redis 進(jìn)行獲取。暫時(shí)沒有選用,之選用了用戶代理,然后在獲取 headers 的時(shí)候加個(gè) time.sleep(1)。目前還是正常的。

4. 報(bào)錯(cuò)'utf-8' codec can't decode byte 0xff in position 1: invalid start byte

遇到這個(gè)問題,實(shí)在無語,我懷疑后面的評論是新出的 emjoy,然后utf-8不能識別,程序掛掉了。但是選取其他格式,在解釋的過程估計(jì)還會掛掉,就暫時(shí)爬到1萬條吧。

四、完整代碼

代碼倉庫

以上就是python 爬取騰訊視頻評論的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于python 爬取騰訊視頻評論的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python爬取騰訊視頻評論的思路詳解
  • 使用python實(shí)現(xiàn)抓取騰訊視頻所有電影的爬蟲
  • 基于python實(shí)現(xiàn)的抓取騰訊視頻所有電影的爬蟲
  • Python爬蟲小練習(xí)之爬取并分析騰訊視頻m3u8格式

標(biāo)簽:烏蘭察布 平頂山 海南 哈爾濱 烏蘭察布 合肥 大慶 郴州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 爬取騰訊視頻評論的實(shí)現(xiàn)步驟》,本文關(guān)鍵詞  python,爬取,騰訊,視頻,評論,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python 爬取騰訊視頻評論的實(shí)現(xiàn)步驟》相關(guān)的同類信息!
  • 本頁收集關(guān)于python 爬取騰訊視頻評論的實(shí)現(xiàn)步驟的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章