婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python基于Tkinter開發(fā)一個爬取B站直播彈幕的工具

Python基于Tkinter開發(fā)一個爬取B站直播彈幕的工具

熱門標簽:江蘇房產(chǎn)電銷機器人廠家 溫州旅游地圖標注 外呼不封號系統(tǒng) 悟空智電銷機器人6 幫人做地圖標注收費算詐騙嗎 蘇州電銷機器人十大排行榜 電信營業(yè)廳400電話申請 荊州云電銷機器人供應(yīng)商 遼寧400電話辦理多少錢

簡介

使用Python Tkinter開發(fā)一個爬取B站直播彈幕的工具,啟動后在彈窗中輸入房間號即可,彈幕內(nèi)容會保存在腳本文件同級目錄下的.log擴展名的文件中

開發(fā)工具

  • python 3.7.9
  • pycharm 2019.3.5

實現(xiàn)代碼

import threading
import time
import tkinter.simpledialog  # 使用Tkinter前需要先導(dǎo)入
from tkinter import END, messagebox

import requests

# 全局變量,用于標識線程是否退出
is_exit = True


# B站獲取彈幕對象
class Danmu():
    def __init__(self, room_id):
        # 彈幕url
        self.url = 'https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'
        # 請求頭
        self.headers = {
            'Host': 'api.live.bilibili.com',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0',
        }
        # 定義POST傳遞的參數(shù)
        self.data = {
            'roomid': room_id,
            'csrf_token': '',
            'csrf': '',
            'visit_id': '',
        }
        # 日志寫對象
        self.log_file_write = open('danmu.log', mode='a', encoding='utf-8')
        # 讀取日志
        log_file_read = open('danmu.log', mode='r', encoding='utf-8')
        self.log = log_file_read.readlines()

    def get_danmu(self):
        # 暫停0.5防止cpu占用過高
        time.sleep(1)
        # 獲取直播間彈幕
        html = requests.post(url=self.url, headers=self.headers, data=self.data).json()
        # 解析彈幕列表
        for content in html['data']['room']:
            # 獲取昵稱
            nickname = content['nickname']
            # 獲取發(fā)言
            text = content['text']
            # 獲取發(fā)言時間
            timeline = content['timeline']
            # 記錄發(fā)言
            msg = timeline + ' ' + nickname + ': ' + text
            # 判斷對應(yīng)消息是否存在于日志,如果和最后一條相同則打印并保存
            if msg + '\n' not in self.log:
                # 打印消息
                listb.insert(END, msg)
                listb.see(END)
                # 保存日志
                self.log_file_write.write(msg + '\n')
                # 添加到日志列表
                self.log.append(msg + '\n')
            # 清空變量緩存
            nickname = ''
            text = ''
            timeline = ''
            msg = ''


# 線程對象
def bilibili(room_id):
    # 創(chuàng)建bDanmu實例
    bDanmu = Danmu(room_id)
    # 獲取彈幕
    bDanmu.get_danmu()


class BilibiliThread(threading.Thread):
    def __init__(self, room_id=None):
        threading.Thread.__init__(self)
        self.room_id = room_id

    # 重寫run()方法
    def run(self):
        global is_exit
        while not is_exit:
            print(self.room_id)
            bilibili(self.room_id)
            # 暫停防止cpu占用過高
            time.sleep(0.5)


def author():
    # 彈出對話框
    messagebox.showinfo(title='關(guān)于', message='作者:阿壯Jonson\n日期:2021年2月4日\n微信公眾號:科技貓')


# 實例化object,建立窗口window
window = tkinter.Tk()
# 給窗口的可視化起名字
window.title('BiliBli彈幕查看工具')
# 設(shè)定窗口的大小(長 * 寬)
window.minsize(300, 500)
window.geometry('400x600+250+100')

# 菜單欄
menubar = tkinter.Menu(window)
# Open放在菜單欄中,就是裝入容器
menubar.add_command(label='關(guān)于', command=author)
# 創(chuàng)建菜單欄完成后,配置讓菜單欄menubar顯示出來
window.config(menu=menubar)

# 創(chuàng)建一個主frame,長在主window窗口上
frame = tkinter.Frame(window)
frame.pack()

# 創(chuàng)建第二層框架frame,長在主框架frame上面
# 上
frame_t = tkinter.Frame(frame)
# 下
frame_b = tkinter.Frame(frame)
frame_t.pack(side=tkinter.TOP)
frame_b.pack(side=tkinter.BOTTOM)

# 創(chuàng)建標簽
tkinter.Label(frame_t, text='請輸入房間號:', width=10, font=('Arial', 10)).pack(side=tkinter.LEFT)
# 顯示成明文形式
default_text = tkinter.StringVar()
default_text.set("21089733")
e1 = tkinter.Entry(frame_t, show=None, width=15, textvariable=default_text, font=('Arial', 10))
e1.pack(side=tkinter.LEFT)


# 定義兩個觸發(fā)事件時的函數(shù)start_point和end_point(注意:因為Python的執(zhí)行順序是從上往下,所以函數(shù)一定要放在按鈕的上面)
# 開始
def start_point():
    try:
        room = e1.get()
        room_int = int(room)
        e1.configure(state=tkinter.DISABLED)
        b1.configure(state=tkinter.DISABLED)
        b2.configure(state=tkinter.NORMAL)
        if room_int is not None:
            global is_exit
            is_exit = False
            t = BilibiliThread()
            t.room_id = room_int
            # 創(chuàng)建獲取彈幕線程
            t.setDaemon(True)
            t.start()
    except ValueError:
        messagebox.showinfo(title='警告', message='輸入的房間號格式不正確,請再次嘗試輸入!')


# 停止
def end_point():
    global is_exit
    is_exit = True
    e1.configure(state=tkinter.NORMAL)
    b1.configure(state=tkinter.NORMAL)
    b2.configure(state=tkinter.DISABLED)


# 創(chuàng)建并放置兩個按鈕分別觸發(fā)兩種情況
b1 = tkinter.Button(frame_t, text='開始', width=10, command=start_point, font=('Arial', 10))
b1.pack(side=tkinter.LEFT)
b2 = tkinter.Button(frame_t, text='停止', width=10, command=end_point, font=('Arial', 10))
b2.pack(side=tkinter.LEFT)

# 滾動條
sc = tkinter.Scrollbar(frame_b)
sc.pack(side=tkinter.RIGHT, fill=tkinter.Y)
# Listbox控件
listb = tkinter.Listbox(frame_b, yscrollcommand=sc.set, width=200, height=120)
# 將部件放置到主窗口中
listb.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=True)
# 滾動條動,列表跟著動
sc.config(command=listb.yview)

# 主窗口循環(huán)顯示
window.mainloop()

爬取效果

Github地址:

https://github.com/jonssonyan/bilibli-danmu

以上就是Python Tkinter開發(fā)一個爬取B站直播彈幕的工具的詳細內(nèi)容,更多關(guān)于Python 爬取B站直播彈幕的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • 用python制作個視頻下載器
  • python3寫爬取B站視頻彈幕功能
  • 寫一個Python腳本自動爬取Bilibili小視頻
  • Python編程實現(xiàn)下載器自動爬取采集B站彈幕示例

標簽:景德鎮(zhèn) 三沙 欽州 宿遷 濟南 喀什 黃山 臺灣

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python基于Tkinter開發(fā)一個爬取B站直播彈幕的工具》,本文關(guān)鍵詞  Python,基于,Tkinter,開發(fā),一個,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python基于Tkinter開發(fā)一個爬取B站直播彈幕的工具》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python基于Tkinter開發(fā)一個爬取B站直播彈幕的工具的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    经典一区二区三区| 午夜精品免费在线| 日韩一级欧美一级| 日韩西西人体444www| 欧美日韩另类国产亚洲欧美一级| 不卡av在线网| 91欧美一区二区| 欧美亚日韩国产aⅴ精品中极品| 欧美性生活大片视频| 欧美精品免费视频| 精品日产卡一卡二卡麻豆| 久久嫩草精品久久久精品一| 久久久亚洲高清| 中文字幕一区二区三区四区不卡| 亚洲同性gay激情无套| 亚洲成人手机在线| 国产在线乱码一区二区三区| 高清日韩电视剧大全免费| 99精品一区二区| 91.成人天堂一区| 久久精品网站免费观看| 最新国产精品久久精品| 精品一区二区在线播放| 国产真实乱子伦精品视频| 99精品久久99久久久久| 在线不卡免费av| 国产日产亚洲精品系列| 夜夜夜精品看看| 美脚の诱脚舐め脚责91| 成人黄色777网| 欧美高清激情brazzers| 欧美经典三级视频一区二区三区| 尤物视频一区二区| 经典三级视频一区| 在线观看www91| 久久综合给合久久狠狠狠97色69| 日韩理论片网站| 久久99蜜桃精品| 在线观看视频91| 国产女主播视频一区二区| 日韩精品一级二级| a美女胸又www黄视频久久| 欧美xxxxx牲另类人与| 亚洲色图一区二区| 国产一区二区三区久久久| 欧洲另类一二三四区| 亚洲国产成人私人影院tom| 美女www一区二区| 在线观看日韩毛片| 国产女同互慰高潮91漫画| 美腿丝袜在线亚洲一区| 欧美视频在线不卡| 亚洲视频在线一区| 高潮精品一区videoshd| 日韩美女在线视频| 日韩精品一级二级| 欧美日韩国产色站一区二区三区| 亚洲色欲色欲www在线观看| 国产一区二区精品久久91| 欧美一卡二卡三卡四卡| 亚洲精品美国一| 91视频免费看| 中文字幕一区二区三区蜜月| 成人毛片视频在线观看| 国产日韩欧美综合在线| 国产在线精品一区二区夜色 | 亚洲精品美国一| 成人黄色国产精品网站大全在线免费观看| 日韩欧美区一区二| 久久精品噜噜噜成人av农村| 欧美一区二区免费观在线| 性做久久久久久| 这里是久久伊人| 蜜臀av性久久久久蜜臀aⅴ流畅| 7777精品伊人久久久大香线蕉经典版下载 | 成人av在线看| 中文字幕一区二区日韩精品绯色| 波多野结衣精品在线| 一区免费观看视频| 日本精品免费观看高清观看| 一区二区视频在线看| 91精品福利在线| 偷拍自拍另类欧美| 久久综合中文字幕| 丁香天五香天堂综合| 亚洲欧美自拍偷拍色图| 91黄色小视频| 日本美女视频一区二区| 2019国产精品| 99精品国产91久久久久久| 亚洲综合色网站| 欧美一级免费大片| 国产不卡视频在线观看| 尤物av一区二区| 日韩欧美在线综合网| 国产精品系列在线播放| 一区二区三区四区亚洲| 欧美成人欧美edvon| 粉嫩av一区二区三区| 一区二区三区色| 26uuu另类欧美亚洲曰本| 99精品视频一区二区三区| 婷婷六月综合网| 中文字幕国产一区二区| 欧美日韩不卡一区| 粉嫩av一区二区三区粉嫩 | 久久久夜色精品亚洲| 99国产精品99久久久久久| 日韩高清一区二区| 中文字幕亚洲不卡| 日韩色在线观看| 色综合天天性综合| 国产一区二区视频在线| 亚洲成人av在线电影| 国产欧美一区二区三区在线老狼| 欧美日韩久久久| 国产aⅴ精品一区二区三区色成熟| 亚洲国产成人va在线观看天堂| 国产欧美日韩在线观看| 69久久99精品久久久久婷婷| 国产美女视频一区| 午夜精品影院在线观看| 亚洲色图欧美激情| 国产无一区二区| 91精品久久久久久久久99蜜臂| av亚洲精华国产精华| 国产一二三精品| 日本不卡视频一二三区| 一区二区三区四区av| 亚洲人成伊人成综合网小说| 国产亚洲综合色| 日韩视频免费观看高清在线视频| 在线观看视频欧美| 在线亚洲+欧美+日本专区| 99久久精品99国产精品| 国产不卡视频在线播放| 国产精品538一区二区在线| 精品午夜一区二区三区在线观看| 日韩精品乱码av一区二区| 亚洲18色成人| 午夜视频在线观看一区二区 | 国产精品一线二线三线| 青娱乐精品在线视频| 婷婷亚洲久悠悠色悠在线播放| 亚洲一区视频在线| 亚洲综合免费观看高清完整版在线| 久久精品亚洲乱码伦伦中文| 2021中文字幕一区亚洲| 国产欧美一区二区精品久导航 | 久久久久久久网| 久久久久成人黄色影片| 久久亚洲综合色| 国产嫩草影院久久久久| 中文字幕精品综合| 中文字幕一区二区三区视频| 日韩一区中文字幕| 一区二区三区91| 日本中文字幕一区| 狠狠色丁香婷综合久久| 国产伦精品一区二区三区在线观看 | 一区二区三区在线视频播放| 一区二区三区在线观看欧美| 亚洲午夜久久久久久久久电影院 | 成人app在线观看| 91美女视频网站| 欧美日韩激情在线| wwwwxxxxx欧美| 亚洲欧洲性图库| 日韩激情一二三区| 国产精品综合网| 在线观看亚洲一区| 欧美sm极限捆绑bd| 国产精品久久久久久久第一福利| 亚洲一区二区欧美日韩| 久久99精品国产麻豆婷婷 | 午夜国产精品影院在线观看| 久久国产精品色婷婷| youjizz久久| 欧美一激情一区二区三区| 亚洲国产成人私人影院tom| 亚洲丰满少妇videoshd| 国产一区二区剧情av在线| 在线免费观看成人短视频| 精品毛片乱码1区2区3区| 亚洲另类春色国产| 久草热8精品视频在线观看| 日本精品视频一区二区| 久久久777精品电影网影网| 夜夜嗨av一区二区三区中文字幕 | 日韩美女啊v在线免费观看| 亚洲成在人线在线播放| 国产精品主播直播| 欧美日免费三级在线| 日本一区免费视频| 久久99这里只有精品| 色噜噜狠狠一区二区三区果冻| 国产午夜三级一区二区三| 日韩精品久久久久久| 色又黄又爽网站www久久| 欧美高清在线视频|