python爬取乘風破浪的姐姐彈幕--芒果TV爬蟲

不知道大家有木有收看興風作浪 乘風破浪的姐姐們吖?你最喜歡哪個姐姐呢?看看哪個姐姐最受彈幕歡迎吧
今天(昨天),先把芒果TV的《乘風破浪的姐姐》彈幕爬下來再說

from bs4 import BeautifulSoup
import requests
import os
import json
import pandas as pd
from wordcloud import WordCloud, ImageColorGenerator
import imageio
import seaborn as sns
import matplotlib.pyplot as plt
import jieba
import collections # 詞頻統計庫

找到json地址
分析可知,彈幕的json都存在這些地方,分別複製“0.json”,“1.json”,“2.json”的URL康康
‘https://bullet-ws.hitv.com/bullet/2020/06/23/095353/8337559/0.json’
‘https://bullet-ws.hitv.com/bullet/2020/06/23/095353/8337559/1.json’
‘https://bullet-ws.hitv.com/bullet/2020/06/23/095353/8337559/2.json’
發現前面的都一樣,只有最後的x.json是按照節目的時間來定的,第1分鐘就是0.json,以此類推。
另外其他期的URL,前面的也是一樣的,只有最後的兩串數字每期有一些差別
以此爲依據就可以寫代碼啦。

#提取某一期的彈幕
def get_danmu(num1,num2,page):
    url='https://bullet-ws.hitv.com/bullet/2020/06/23/{}/{}/{}.json'
    danmuurl = url.format(num1,num2,page)
    res=requests.get(danmuurl)
    res.encoding = 'utf-8'
    jd=json.loads(res.text)
    details=[]
    for i in range(len(jd['data']['items'])):
        result={}
        result['stype']=num2
        result['id']=jd['data']['items'][i]['id']
        try:
            result['uname']=jd['data']['items'][i]['uname']
        except:
            result['uname']=''
        result['content']=jd['data']['items'][i]['content']
        result['time']=jd['data']['items'][i]['time']
        try:
            result['v2_up_count']=jd['data']['items'][i]['v2_up_count']
        except:
            result['v2_up_count']=''
        details.append(result)
    
    
    return details
#輸入關鍵信息
def count_danmu():
    danmu_total=[]
    num1=input('第一個數字')
    num2=input('第二個數字')
    page=int(input('輸入總時長'))
    for i in range(page):
        danmu_total.extend(get_danmu(num1,num2,i))
        
    return danmu_total
def main():
    danmu_end=[]
    #爬前四集,所以設置了循環4次
    for j in range(4):
        danmu_end.extend(count_danmu())
    df=pd.DataFrame(danmu_end)
    df.to_excel('danmu.xlsx')

    
if __name__ == '__main__':
    main()

分別輸入每期的參數,就可以得到相應的彈幕啦,我爬的時候是6.23,大家可以參考一下

6.23前四集的參數
095353,8337559,101
135229,8339494,134
135223,8398205,100
121038,8437644,35
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章