久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python3 爬取B站視頻彈幕

 萬(wàn)皇之皇 2018-01-03



需要準(zhǔn)備的環(huán)境:


  1. 一個(gè)B站賬號(hào),需要先登錄,否則不能查看歷史彈幕記錄

  2. 聯(lián)網(wǎng)的電腦和順手的瀏覽器,我用的Chrome

  3. Python3環(huán)境以及request模塊,安裝使用命令,換源比較快:

pip3 install  request -i http://pypi.douban.com/simple


爬取步驟:

  1. 登錄后打開(kāi)需要爬取的視頻頁(yè)面,打開(kāi)開(kāi)發(fā)者工具臺(tái),Chrome可以使用F12快捷鍵,選擇network監(jiān)聽(tīng)請(qǐng)求

     

  2. 點(diǎn)擊查看歷史彈幕,獲取請(qǐng)求

     

  3. 其中rolldate后面的數(shù)字表示該視頻對(duì)應(yīng)的彈幕號(hào),返回的數(shù)據(jù)中timestamp表示彈幕日期,new表示數(shù)目

     

  4. 在查看歷史彈幕中任選一天,查看,會(huì)發(fā)出新的請(qǐng)求
    dmroll ,時(shí)間戳,彈幕號(hào),表示獲取該日期的彈幕,1507564800 表示2017/10/10 0:0:0



    該請(qǐng)求返回xml數(shù)據(jù)


  5. 使用正則表達(dá)式獲取所有彈幕消息,匹配模式

    'd p='.*?'>(.*?)d>'

     

  6. 拼接字符串,將所有彈幕保存到本地文件即可

    with open('content.txt', mode='w+', encoding='utf8') as f:    f.write(content)

     

  7. 參考代碼如下,將彈幕按照日期保存為單個(gè)文件...因?yàn)樘嗔?..

    import requests
    import re
    import time

    '''    爬取嗶哩嗶哩視頻彈幕信息'''

    # 2043618 是視頻的彈幕標(biāo)號(hào),這個(gè)地址會(huì)返回時(shí)間列表
    # https://www.bilibili.com/video/av1349282
    url = 'https://comment.bilibili.com/rolldate,2043618'
    # 獲取彈幕的id 2043618
    video_id = url.split(',')[-1]print(video_id)
    # 獲取json文件
    html = requests.get(url)
    # print(html.json())

    # 生成時(shí)間戳列表
    time_list = [i['timestamp'] for i in html.json()]
    # print(time_list)

    # 獲取彈幕網(wǎng)址格式 'https://comment.bilibili.com/dmroll,時(shí)間戳,彈幕號(hào)'

    # 彈幕內(nèi)容,由于總彈幕量太大,將每個(gè)彈幕文件分別保存
    for i in time_list:    content = ''    j = 'https://comment.bilibili.com/dmroll,{0},{1}'.format(i, video_id)    print(j)    text = requests.get(j).text
       # 匹配彈幕內(nèi)容    res = re.findall('(.*?)', text)    
       # 將時(shí)間戳轉(zhuǎn)化為日期形式,需要把字符串轉(zhuǎn)為整數(shù)    timeArray = time.localtime(int(i))    date_time = time.strftime('%Y-%m-%d %H:%M:%S', timeArray)    print(date_time)    content += date_time + ''    for k in res:        content += k + ''    content += ''    file_path = 'txt/{}.txt'.format(time.strftime('%Y_%m_%d', timeArray))    print(file_path)    
       with open(file_path, mode='w+', encoding='utf8') as f:        f.write(content)

     

  8. 最終效果

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多