丝袜人妻一区二区三区_少妇福利无码视频_亚洲理论片在线观看_一级毛片国产A级片

當(dāng)前位置:首頁 > 話題廣場 > 攻略專題 > 游戲問答

關(guān)于怎么查愛奇藝彈幕,你需要知道這些用Python爬取B站、騰訊視頻、愛奇藝和芒果TV視頻彈幕

眾所周知,彈幕,也就是在網(wǎng)上看視頻時(shí)出現(xiàn)的評(píng)論字幕。

不知道大家看視頻的時(shí)候會(huì)不會(huì)點(diǎn)開彈幕,于我而言,彈幕是視頻內(nèi)容的良好補(bǔ)充,是一個(gè)組織良好的評(píng)論序列。通過分析彈幕,我們可以快速洞察廣大觀眾對于視頻的看法。

阿喵通過一個(gè)關(guān)于《八佰》的視頻彈幕數(shù)據(jù),繪制了如下詞云圖,感覺效果還是可以的。


點(diǎn)擊并拖拽以移動(dòng)

這里多說一句,小編是一名python開發(fā)工程師,這里有我自己整理的一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)等。想要這些資料的可以關(guān)注小編,并在后臺(tái)私信小編:“01”即可領(lǐng)取。

海量的彈幕數(shù)據(jù)不僅可以繪制此類詞云圖,還可以調(diào)用百度AI進(jìn)行情感分析。那么,我們該如何獲取彈幕數(shù)據(jù)呢?本文運(yùn)用Python爬取B站視頻、騰訊視頻、芒果TV和愛奇藝視頻等彈幕,讓你輕松獲取主流視頻網(wǎng)站彈幕數(shù)據(jù)。

一、B站視頻彈幕

1.網(wǎng)頁分析

本文以爬取up主硬核的半佛仙人發(fā)布的《你知道奶茶加盟到底有多坑人嗎?》視頻彈幕為例,首先通過以下步驟找到存放彈幕的真實(shí)url。


點(diǎn)擊并拖拽以移動(dòng)


簡單分析url參數(shù),很顯然,date參數(shù)表示發(fā)送彈幕的時(shí)間,其他參數(shù)均無變化。因此,只需要改變date參數(shù),然后通過beautifulsoup解析到彈幕數(shù)據(jù)即可。

2.爬蟲實(shí)戰(zhàn)

import requests #請求網(wǎng)頁數(shù)據(jù)

from bs4 import BeautifulSoup #美味湯解析數(shù)據(jù)

import pandas as pd

import time

from tqdm import trange #獲取爬取速度

def get_bilibili_url (start, end) :

url_list = []

date_list = [i for i in (start, end).strftime( '%Y-%m-%d' )]

for date in date_list:

url = f"a… {date} "

url_li(url)

return url_list

def get_bilibili_danmu (url_list) :

headers = {

"user-agent" : "Mozilla (Macintosh; Intel Mac OS X 10_14_6) AppleWebKi (KHTML, like Gecko) Chrome Safari; ,

"cookie" : "你自己的" #Headers中copy即可

}

file = open( "bilibili_danmu.txt" , 'w' )

for i in trange(len(url_list)):

url = url_list[i]

response = reque(url, headers=headers)

re = 'utf-8'

soup = BeautifulSou)

data = ( "d" )

danmu = [data[i].text for i in range(len(data))]

for items in danmu:

(items)

( "\n" )

( 3 )

()

if name == "main" :

start = '9/24/2020' #設(shè)置爬取彈幕的起始日

end = '9/26/2020' #設(shè)置爬取彈幕的終止日

url_list = get_bilibili_url(start, end)

get_bilibili_danmu(url_list)

print(

"彈幕爬取完成"

)

3.數(shù)據(jù)預(yù)覽


點(diǎn)擊并拖拽以移動(dòng)

?

二、騰訊視頻彈幕

1.網(wǎng)頁分析

本文以爬取《脫口秀大會(huì) 第3季》最后一期視頻彈幕為例,首先通過以下步驟找到存放彈幕的真實(shí)url。


點(diǎn)擊并拖拽以移動(dòng)


通過刪減各參數(shù),發(fā)現(xiàn)僅有timestamp參數(shù)的變化會(huì)影響彈幕數(shù)據(jù)的爬取,且timestamp參數(shù)是首項(xiàng)為15,公差為30的等差數(shù)列??梢源竽懖聹y騰訊視頻每30秒更新一頁彈幕數(shù)據(jù),該視頻長度為12399秒。而數(shù)據(jù)格式為標(biāo)準(zhǔn)的json格式,因此j直接解析數(shù)據(jù)即可。

2.爬蟲實(shí)戰(zhàn)

import requests

import json

import time

import pandas as pd

df = ()

for page in range( 15 , 12399 , 30 ):

headers = { 'User-Agent' : 'Mozilla (Windows NT 6.1; WOW64) AppleWebKi (KHTML, like Gecko) Chrome Safari; }

url = 'm… .format(page)

print( "正在提取第" + str(page) + "頁" )

html = reque(url,headers = headers)

bs = j = False ) #strict參數(shù)解決部分內(nèi)容json格式解析報(bào)錯(cuò)

( 1 )

#遍歷獲取目標(biāo)字段

for i in bs[ 'comments' ]:

content = i[ 'content' ] #彈幕

upcount = i[ 'upcount' ] #點(diǎn)贊數(shù)

user_degree =i[ 'uservip_degree' ] #會(huì)員等級(jí)

timepoint = i[ 'timepoint' ] #發(fā)布時(shí)間

comment_id = i[ 'commentid' ] #彈幕id

cache = ({ '彈幕' :[content], '會(huì)員等級(jí)' :[user_degree],

'發(fā)布時(shí)間' :[timepoint], '彈幕點(diǎn)贊' :[upcount], '彈幕id' :[comment_id]})

df = ([df,cache])

df.to_csv( '; ,encoding = 'utf-8' )

prin)

3.數(shù)據(jù)預(yù)覽


點(diǎn)擊并拖拽以移動(dòng)


三、芒果TV彈幕

1.網(wǎng)頁分析

本文以爬取《乘風(fēng)破浪的姐姐》最后一期視頻彈幕為例,首先通過以下步驟找到存放彈幕的真實(shí)url。


點(diǎn)擊并拖拽以移動(dòng)

?

通過分析參數(shù),我們可以發(fā)現(xiàn),芒果TV會(huì)生成首項(xiàng)為0,公差為1的等差數(shù)列json彈幕文件,每個(gè)json文件存儲(chǔ)前一分鐘內(nèi)所有的彈幕數(shù)據(jù)。彈幕數(shù)據(jù)存放格式為json,數(shù)據(jù)解析較為簡單。

2.爬蟲實(shí)戰(zhàn)

import requests

import json

import pandas as pd

def get_mangguo_danmu (num1, num2, page) :

try :

url = 'bulle…

print( "正在爬取第" + str(page) + "頁" )

danmuurl = url.format(num1, num2, page)

res = reque(danmuurl)

res.encoding = 'utf-8'

#prin)

data = j)

except :

print( "無法連接" )

details = []

for i in range(len(data[ 'data' ][ 'items' ])): # 彈幕數(shù)據(jù)在json文件'data'的'items'中

result = {}

result[ 'stype' ] = num2 # 通過stype可識(shí)別期數(shù)

result[ 'id' ] = data[ 'data' ][ 'items' ][i][ 'id' ] # 獲取id

try : # 嘗試獲取uname

result[ 'uname' ] = data[ 'data' ][ 'items' ][i][ 'uname' ]

except :

result[ 'uname' ] = ''

result[ 'content' ] = data[ 'data' ][ 'items' ][i][ 'content' ] # 獲取彈幕內(nèi)容

result[ 'time' ] = data[ 'data' ][ 'items' ][i][ 'time' ] # 獲取彈幕發(fā)布時(shí)間

try : # 嘗試獲取彈幕點(diǎn)贊數(shù)

result[ 'v2_up_count' ] = data[ 'data' ][ 'items' ][i][ 'v2_up_count' ]

except :

result[ 'v2_up_count' ] = ''

de(result)

return details

#輸入關(guān)鍵信息

def count_danmu () :

danmu_total = []

num1 = input( '第一個(gè)數(shù)字' )

num2 = input( '第二個(gè)數(shù)字' )

page = int(input( '輸入總時(shí)長' ))

for i in range(page):

danmu_(get_mangguo_danmu(num1, num2, i))

return danmu_total

def main () :

df = (count_danmu())

df.to_csv( 'mangguo_danmu.csv' )

if name == 'main' :

main()

3.數(shù)據(jù)預(yù)覽


點(diǎn)擊并拖拽以移動(dòng)


四、愛奇藝彈幕

1.網(wǎng)頁分析

本文以爬取《樂隊(duì)的夏天第2季》第13期上視頻彈幕為例,首先通過以下步驟找到存放彈幕的真實(shí)url。


點(diǎn)擊并拖拽以移動(dòng)

?

分析彈幕真實(shí)url,我們發(fā)現(xiàn),參數(shù)5981449914376200是視頻tvid,參數(shù)62是tvid倒數(shù)4為的前兩位,參數(shù)00是tvid的最后兩位,.z前的參數(shù)1為視頻總時(shí)長除以300秒向上取整。觀察相鄰兩個(gè)彈幕文件包,可以看出愛奇藝每5分鐘更新一次彈幕文件。


點(diǎn)擊并拖拽以移動(dòng)

?

由于直接爬取出來的彈幕文件存在亂碼,需要進(jìn)行二進(jìn)制編碼,方可得到最終的彈幕數(shù)據(jù)。

2.爬蟲實(shí)戰(zhàn)

import zlib

import requests

1.爬取xml文件

def download_xml (url) :

bulletold = reque(url).content # 二進(jìn)制內(nèi)容

return zipdecode(bulletold)

def zipdecode (bulletold) :

'對zip壓縮的二進(jìn)制內(nèi)容解碼成文本'

decode = zlib.decompress(bytearray(bulletold), 15 + 32 ).decode( 'utf-8' )

return decode

for x in range( 1 , 12 ):

x是從1到12,12怎么來的,這一集總共57分鐘,愛奇藝每5分鐘會(huì)加載新的彈幕,57除以5向上取整

url = 'cm… + str(x) + '.z'

xml = download_xml(url)

把編碼好的文件分別寫入17個(gè)xml文件中(類似于txt文件),方便后邊取數(shù)據(jù)

with open( './aiqiyi/iqiyi' + str(x) + '.xml' , 'a+' , encoding= 'utf-8' ) as f:

f.write(xml)

2.讀取xml文件中的彈幕數(shù)據(jù)數(shù)據(jù)

from xml.dom.minidom import parse

import xml.dom.minidom

def xml_parse (file_name) :

DOMTree = xml.dom.minidom.parse(file_name)

collection = DOMTree.documentElement

在集合中獲取所有entry數(shù)據(jù)

entrys = collec( "entry" )

print(entrys)

result = []

for entry in entrys:

content = en( 'content' )[ 0 ]

prin[ 0 ].data)

i = con[ 0 ].data

re(i)

return result

with open( "aiyiqi_danmu.txt" , mode= "w" , encoding= "utf-8" ) as f:

for x in range( 1 , 12 ):

l = xml_parse( "./aiqiyi/iqiyi" + str(x) + ".xml" )

for line in l:

f.write(line)

f.write(

"\n"

3.數(shù)據(jù)預(yù)覽


點(diǎn)擊并拖拽以移動(dòng)


最后多說一句,小編是一名python開發(fā)工程師,這里有我自己整理的一套最新的python系統(tǒng)學(xué)習(xí)教程,包括從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)等。想要這些資料的可以關(guān)注小編,并在后臺(tái)私信小編:“01”即可領(lǐng)取。

1.《關(guān)于怎么查愛奇藝彈幕,你需要知道這些用Python爬取B站、騰訊視頻、愛奇藝和芒果TV視頻彈幕》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。

2.《關(guān)于怎么查愛奇藝彈幕,你需要知道這些用Python爬取B站、騰訊視頻、愛奇藝和芒果TV視頻彈幕》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。

3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/gl/3204936.html

上一篇

關(guān)于怎么查qq有沒有綁定身份證號(hào),你需要知道這些胖虎Q綁查詢工具——一款QQ賬號(hào)信息查詢工具

下一篇

微信上發(fā)語音聽不到怎么回事看這里!微信盡量不要發(fā)語音,原因望周知!記住了

怎么查愛奇藝彈幕?終于找到答案了愛奇藝UWP版v5.5 更新:加入角色彈幕,優(yōu)化UI細(xì)節(jié)

怎么查愛奇藝彈幕相關(guān)介紹,10月1日的消息是,進(jìn)入今年以來,愛奇藝的UWP版本經(jīng)常更新,在功能和UI上都取得了很大進(jìn)步。 現(xiàn)在根據(jù)一名網(wǎng)友的投稿,他已經(jīng)收到了愛奇藝UWP版v5.5 更新,新增了角色彈幕功能。 目前,小編電腦的...

關(guān)于怎么查愛奇藝彈幕,你需要知道這些愛奇藝90后用戶:沒有彈幕怎么看劇

怎么查愛奇藝彈幕相關(guān)介紹,在愛奇藝推出的兩部新作《來自星星的繼承者們》和《TFBOYS偶像手記》中,愛奇藝最近推出的彈幕功能讓人們感受到了精彩內(nèi)容以外的樂趣。 愛奇藝后臺(tái)最新數(shù)據(jù)顯示,這兩部劇每集的彈幕數(shù)都在10萬左右。自8月...

怎么查愛奇藝彈幕?總結(jié)很全面速看!【進(jìn)擊的彈幕】愛奇藝領(lǐng)軍彈幕時(shí)代 沒有彈幕怎么看視頻

怎么查愛奇藝彈幕相關(guān)介紹,看愛奇藝書視頻還可以刷彈幕!看錄像怎么會(huì)沒有彈幕!他是吐槽雷劇的先鋒,動(dòng)畫萌發(fā)的好手,高能預(yù)警的紅領(lǐng)巾~ ~ ~ 我有個(gè)好朋友叫彈幕軍。 介是我和他的觀劇日常,有他的陪伴,看劇再也不孤單~ 想和小伙伴...