久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

使用python tkinter開發(fā)一個(gè)爬取B站直播彈幕工具的實(shí)現(xiàn)代碼

瀏覽:2日期:2022-06-28 10:05:25

項(xiàng)目地址

https://github.com/jonssonyan...

開發(fā)工具 python 3.7.9

pycharm 2019.3.5 代碼

import threadingimport timeimport tkinter.simpledialogfrom tkinter import END, simpledialog, messageboximport requestsclass Danmu(): def __init__(self, room_id): # 彈幕url self.url = ’https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory’ # 請(qǐng)求頭 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’: ’’, } # 日志寫對(duì)象 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ā)言時(shí)間 timeline = content[’timeline’] # 記錄發(fā)言 msg = timeline + ’ ’ + nickname + ’: ’ + text # 判斷對(duì)應(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(delay, room_id): # 創(chuàng)建bDanmu實(shí)例 bDanmu = Danmu(room_id) while True: # 暫停防止cpu占用過高 time.sleep(delay) # 獲取彈幕 bDanmu.get_danmu()def author(): # 彈出對(duì)話框 messagebox.showinfo(title=’關(guān)于’, message=’作者:阿壯Jonsonn日期:2021年2月4日n微信公眾號(hào):科技貓’)# tkinter GUIwindow = tkinter.Tk()window.title(’BiliBli彈幕查看工具’)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)# 滾動(dòng)條sc = tkinter.Scrollbar(window)sc.pack(side=tkinter.RIGHT, fill=tkinter.Y)# Listbox控件listb = tkinter.Listbox(window, yscrollcommand=sc.set)# 將部件放置到主窗口中l(wèi)istb.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=True)# 滾動(dòng)條動(dòng),列表跟著動(dòng)sc.config(command=listb.yview)# 獲取字符串(標(biāo)題,提示,初始值)room_id = simpledialog.askstring(title=’請(qǐng)輸入房間號(hào)’, prompt=’請(qǐng)輸入房間號(hào):’ , initialvalue=’21089733’)if room_id is not None: # 創(chuàng)建獲取彈幕線程 try: t = threading.Thread(target=bilibili, args=(0.5, str(room_id),)) t.setDaemon(True) t.start() except: print('Error: 啟動(dòng)失敗!請(qǐng)檢查房間號(hào)是否正確')# 進(jìn)入循環(huán)顯示window.mainloop()

編譯

使用第三方包:pyinstaller

命令

pyinstaller -F -w bilibli-danmu.py

參數(shù)解釋

-F,-onefile 產(chǎn)生單個(gè)的可執(zhí)行文件

-w,--windowed,--noconsolc 指定程序運(yùn)行時(shí)不顯示命令行窗口(僅對(duì) Windows 有效) PyInstaller 支持的常用選項(xiàng)

使用python tkinter開發(fā)一個(gè)爬取B站直播彈幕工具的實(shí)現(xiàn)代碼

補(bǔ)充

執(zhí)行完命令之后會(huì)在項(xiàng)目目錄下多出dist文件夾,編譯后的文件就在該文件夾下 pyinstaller 不可以跨平臺(tái)編譯,windows平臺(tái)下只能編譯成windows下的執(zhí)行文件(.exe),同理mac linux也是一樣

到此這篇關(guān)于使用python tkinter開發(fā)一個(gè)爬取B站直播彈幕的工具的文章就介紹到這了,更多相關(guān)python tkinter開發(fā)B站直播彈幕工具內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: b站 嗶哩嗶哩 Python
相關(guān)文章:
主站蜘蛛池模板: 欧美成人一区二区三区片免费 | 黄色免费在线观看网址 | 二区久久 | 久久精品久久久 | 毛片毛片毛片 | 色综合久久伊人 | 天天看天天操 | 日本不卡高字幕在线2019 | 欧美日韩亚洲视频 | 久久久精品久久久久 | 免费视频99 | 成人欧美一区二区三区黑人孕妇 | 欧美日韩精品久久 | 欧美天天 | 国产激情午夜 | 日韩精品一区二区在线观看 | 91精品国产色综合久久不卡98 | 久久久久久一区二区 | 国产欧美一区二区精品婷 | 久久艹99 | 亚洲小视频 | 在线中文字幕av | 一区二区三区在线视频播放 | 亚洲欧美视频一区 | 日本色综合 | 另类久久 | 拍真实国产伦偷精品 | 激情视频在线观看免费 | 久久久高清 | www.久久久 | 中文字幕亚洲欧美日韩在线不卡 | 日韩在线成人 | 日韩在线播放一区二区 | 爱操av| 欧美日本乱大交xxxxx | 亚洲一级毛片 | 成人久久久久爱 | 中文字幕亚洲视频 | 国产精品久久久久久亚洲调教 | 亚洲美女在线视频 | 夜夜草 |