欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬取騰訊視頻評(píng)論的思路詳解

 更新時(shí)間:2019年12月19日 09:40:58   作者:畫師-開言  
這篇文章主要介紹了Python爬取騰訊視頻評(píng)論功能,本文圖文詳解給大家提供實(shí)現(xiàn)思路,需要的朋友可以參考下

一、前提條件

  • 安裝了Fiddler了(用于抓包分析)
  • 谷歌火狐瀏覽器
  • 如果是谷歌瀏覽器,還需要給谷歌瀏覽器安裝一個(gè)SwitchyOmega插件,用于代理服務(wù)器
  • 有Python的編譯環(huán)境,一般選擇Python3.0及以上

聲明:本次爬取騰訊視頻里 《最美公里》紀(jì)錄片的評(píng)論。本次爬取使用的瀏覽器是谷歌瀏覽器

二、分析思路

1、分析評(píng)論頁(yè)面

在這里插入圖片描述

根據(jù)上圖,我們可以知道:評(píng)論使用了Ajax異步刷新技術(shù)。這樣就不能使用以前分析當(dāng)前頁(yè)面找出規(guī)律的手段了。因?yàn)檎故镜捻?yè)面只有部分評(píng)論,還有大量的評(píng)論沒(méi)有被刷新出來(lái)。

這時(shí),我們應(yīng)該想到使用抓包來(lái)分析評(píng)論頁(yè)面刷新的規(guī)律。以后大部分爬蟲,都會(huì)先使用抓包技術(shù),分析出規(guī)律!

2、使用Fiddler進(jìn)行抓包分析——得出評(píng)論網(wǎng)址規(guī)律

fiddler如何抓包,這個(gè)知識(shí)點(diǎn),需要讀者自行去學(xué)習(xí),不在本博客討論范圍。

在這里插入圖片描述
在這里插入圖片描述

把上面兩張圖里面的內(nèi)容對(duì)比一下,可以知道這個(gè)JS就是評(píng)論存放頁(yè)面。(這需要大家一個(gè)一個(gè)找,一般Ajax都是在JS里面,所以這也找JS進(jìn)行對(duì)比即可)

我們復(fù)制這個(gè)JS的url:右擊 > copy > Just Url

大家可以重復(fù)操作幾次,多找?guī)讉€(gè)JS的url,從url得出規(guī)律。下圖是我刷新了4次得到的JS的url:

在這里插入圖片描述

根據(jù)上圖,我們發(fā)現(xiàn)url不同的地方有兩處:一是cursor=?;二是_=?。

我們很快就能發(fā)現(xiàn) _=?的規(guī)律,它是從1576567187273加1。而cursor=?的規(guī)律看不出來(lái)。這個(gè)時(shí)候找到它的規(guī)律呢?

(1)百度一下,看前人有沒(méi)有爬取過(guò)類型的網(wǎng)站,根據(jù)他們的規(guī)律和方法,去找出規(guī)律;

(2)羊毛出在羊身上。我們需要有的大膽想法——會(huì)不會(huì)這個(gè)cursor=?可以根據(jù)上一個(gè)JS頁(yè)面得到呢?這只是很多大膽想法中的一個(gè),我們就一個(gè)想法一個(gè)想法的試試。

我們就采用第二種方法,去js里面找。復(fù)制其中一個(gè)url為:

url = https://video.coral.qq.com/varticle/3242201702/comment/v2?callback=_varticle3242201702commentv2&orinum=10&oriorder=o&pageflag=1&cursor=6460163812968870071&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_=1576567187273

去瀏覽器里面打開,在里面搜索一下此url的下一個(gè)url的cursor=?的值。我們發(fā)現(xiàn)一個(gè)驚喜!

在這里插入圖片描述

如下:

一般情況下,我們還要多試幾次,確定我們的想法是正確的。

至此,我們發(fā)現(xiàn)了評(píng)論的url之間的規(guī)律:

  • _=?從1576567187273加1
  • cursor=?的值存在上面一個(gè)JS中。

三、代碼編寫

import re
import random
import urllib.request

#構(gòu)建用戶代理
uapools=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
  "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0",
 ]
#從用戶代理池隨機(jī)選取一個(gè)用戶代理
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)

#獲取源碼
def get_content(page,lastId):
 url="https://video.coral.qq.com/varticle/3242201702/comment/v2?callback=_varticle3242201702commentv2&orinum=10&oriorder=o&pageflag=1&cursor="+lastId+"&scorecursor=0&orirepnum=2&reporder=o&reppageflag=1&source=132&_="+str(page)
 html=urllib.request.urlopen(url).read().decode("utf-8","ignore")
 return html

#從源碼中獲取評(píng)論的數(shù)據(jù)
def get_comment(html):
 pat='"content":"(.*?)"'
 rst = re.compile(pat,re.S).findall(html)
 return rst
 
#從源碼中獲取下一輪刷新頁(yè)的ID
def get_lastId(html):
 pat='"last":"(.*?)"'
 lastId = re.compile(pat,re.S).findall(html)[0]
 return lastId

def main():
 ua(uapools)
 #初始頁(yè)面
 page=1576567187274
 #初始待刷新頁(yè)面ID
 lastId="6460393679757345760"
 for i in range(1,6):
 html = get_content(page,lastId)
 #獲取評(píng)論數(shù)據(jù)
 commentlist=get_comment(html)
 print("------第"+str(i)+"輪頁(yè)面評(píng)論------")
 for j in range(1,len(commentlist)):
  print("第"+str(j)+"條評(píng)論:" +str(commentlist[j]))
 #獲取下一輪刷新頁(yè)ID
 lastId=get_lastId(html)
 page += 1

main()

四、結(jié)果展示

在這里插入圖片描述

總結(jié)

以上所述是小編給大家介紹的Python爬取騰訊視頻評(píng)論,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 基于CentOS搭建Python Django環(huán)境過(guò)程解析

    基于CentOS搭建Python Django環(huán)境過(guò)程解析

    這篇文章主要介紹了基于CentOS搭建Python Django環(huán)境過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python numpy 顯示圖像陣列的實(shí)例

    python numpy 顯示圖像陣列的實(shí)例

    今天小編就為大家分享一篇python numpy 顯示圖像陣列的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 68行Python代碼實(shí)現(xiàn)帶難度升級(jí)的貪吃蛇

    68行Python代碼實(shí)現(xiàn)帶難度升級(jí)的貪吃蛇

    本文主要介紹了Python代碼實(shí)現(xiàn)帶難度升級(jí)的貪吃蛇,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python無(wú)法用requests獲取網(wǎng)頁(yè)源碼的解決方法

    Python無(wú)法用requests獲取網(wǎng)頁(yè)源碼的解決方法

    爬蟲獲取信息,很多時(shí)候是需要從網(wǎng)頁(yè)源碼中獲取鏈接信息的,下面這篇文章主要給大家介紹了關(guān)于Python無(wú)法用requests獲取網(wǎng)頁(yè)源碼的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 還不知道Anaconda是什么?讀這一篇文章就夠了

    還不知道Anaconda是什么?讀這一篇文章就夠了

    Anaconda指的是一個(gè)開源的Python發(fā)行版本,其包含了Conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),下面這篇文章主要給大家介紹了關(guān)于Anaconda是什么的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 詳談python3 numpy-loadtxt的編碼問(wèn)題

    詳談python3 numpy-loadtxt的編碼問(wèn)題

    下面小編就為大家分享一篇詳談python3 numpy-loadtxt的編碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 使用LibTorch進(jìn)行C++調(diào)用pytorch模型方式

    使用LibTorch進(jìn)行C++調(diào)用pytorch模型方式

    這篇文章主要介紹了使用LibTorch進(jìn)行C++調(diào)用pytorch模型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件的方法

    python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件的方法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件的3種方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 快速解決jupyter notebook啟動(dòng)需要密碼的問(wèn)題

    快速解決jupyter notebook啟動(dòng)需要密碼的問(wèn)題

    這篇文章主要介紹了快速解決jupyter notebook啟動(dòng)需要密碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 正確理解python迭代器與生成器

    正確理解python迭代器與生成器

    在Python這門語(yǔ)言中,生成器毫無(wú)疑問(wèn)是最有用的特性之一。與此同時(shí),也是使用的最不廣泛的Python特性之一。究其原因,主要是因?yàn)?,在其他主流語(yǔ)言里面沒(méi)有生成器的概念。本文將詳細(xì)介紹python迭代器與生成器
    2021-06-06

最新評(píng)論