Python得到彈幕并保存到Excel中怎么設(shè)置
hello,我是李華同學(xué),最近開(kāi)始學(xué)習(xí)爬蟲(chóng),下面是我實(shí)現(xiàn)的一個(gè)得到彈幕的代碼
找一個(gè)的URL
想要得到一個(gè)網(wǎng)站的內(nèi)容,首先要找到你想要內(nèi)容的具體位置,首先你先找到一個(gè)有彈幕的地方,找到后按F12,找到在網(wǎng)絡(luò)下,然后刷新頁(yè)面,在左邊搜索欄搜history可以找到儲(chǔ)存彈幕的地址(圖1),彈幕地址具體情況具體分析。
在標(biāo)頭下的“請(qǐng)求URL”,后面那一串鏈接就是要爬取的位置。(圖2)

圖1

圖2
實(shí)現(xiàn)代碼過(guò)程
將Python代碼和Excel文件放在一個(gè)文件下

圖3
用request庫(kù)進(jìn)行操作
不會(huì)下載庫(kù)的同學(xué)可以在pycharm終端下用pip下載,也可以在設(shè)置setting的project下下載,具體步驟不會(huì)可以搜大佬的文章。
用requests對(duì)網(wǎng)站進(jìn)行訪問(wèn),這里用到了get請(qǐng)求方法,請(qǐng)求方法可以在之前找URL下看到。(圖2)
requests.get('https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory?roomid=5050')對(duì)訪問(wèn)的內(nèi)容進(jìn)行選擇
我這里就選擇了姓名和彈幕
for ac in d['data']['room']:
s = "{}說(shuō):{}".format(ac['nickname'], ac['text'])防止得到的內(nèi)容重復(fù)
用列表儲(chǔ)存爬取的數(shù)據(jù),用if條件判斷新爬取的內(nèi)容是否在列表ls中,如果不在就用append追加到列表中。
ls = []
if s not in ls:
ls.append(ls) 把得到的數(shù)據(jù)保存到Excel中
在這個(gè)過(guò)程中用到了openpyxl庫(kù)。
首先在Excel中先寫(xiě)下表頭(圖4),為接下來(lái)插入得到的內(nèi)容找位置,然后保存(記得爬取的時(shí)候不要打開(kāi)Excel文件)。
# 打開(kāi)文件 wb = openpyxl.Workbook() # 使用的工作對(duì)象創(chuàng)建一張表 sheet = wb.active # 在sheet1表中寫(xiě)入內(nèi)容 插入內(nèi)容 sheet.append(['B友姓名', 'B友說(shuō)的話'])
保存內(nèi)容,這個(gè)是借鑒一篇文章Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過(guò)程,具體的解釋可以看這位大佬的,還有實(shí)例。
print('B友姓名' + nickname, 'B友說(shuō)的話' + text)
print('開(kāi)始寫(xiě)入excel,請(qǐng)稍等...', end='')
xx_info = [nickname, text]
sheet.append(xx_info)
print('寫(xiě)入成功\n')
# 關(guān)閉保存工作簿
wb.save('data.xls')
圖4
全部代碼(代碼的直接取)
import random
import requests
import time
import openpyxl
# 打開(kāi)文件
wb = openpyxl.Workbook()
# 使用的工作對(duì)象創(chuàng)建一張表
sheet = wb.active
# 在sheet1表中寫(xiě)入內(nèi)容 插入內(nèi)容
sheet.append(['B友姓名', 'B友說(shuō)的話']) #這是在excel第一行插入,可以相當(dāng)于一個(gè)文件的表頭
# 用列表儲(chǔ)存爬取內(nèi)容,防止出現(xiàn)相似值
ls = []
# 循環(huán)實(shí)時(shí)彈幕
while True:
# 爬取的直播間
r = requests.get('')#這里括號(hào)里放找到的URL
# 每次爬取的間隔,防止讓服務(wù)器崩潰
time.sleep(random.randint(1, 3))
# 將輸出的字符串內(nèi)容轉(zhuǎn)換成字典形式
d = eval(r.text)
# 在這兩字典中爬取
for ac in d['data']['room']:
s = "{}說(shuō):{}".format(ac['nickname'], ac['text'])
nickname = ac['nickname']
text = ac['text']
# 判斷輸出內(nèi)容是否重復(fù)
if s not in ls:
ls.append(ls)
# 確定沒(méi)有重復(fù)值了輸出
# 顏色
sheet.sheet_properties.tabColor = '000000'
print('B友姓名' + nickname, 'B友說(shuō)的話' + text)
print('開(kāi)始寫(xiě)入excel,請(qǐng)稍等...', end='')
xx_info = [nickname, text]
sheet.append(xx_info)
print('寫(xiě)入成功\n')
# 關(guān)閉保存工作簿
wb.save('data.xls')到此這篇關(guān)于Python得到彈幕并保存到Excel中怎么設(shè)置的文章就介紹到這了,更多相關(guān)Python彈幕保存到Excel中內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下將Python的Django項(xiàng)目部署到Apache服務(wù)器
這篇文章主要介紹了Python的Django項(xiàng)目部署到Apache服務(wù)器上的要點(diǎn)總結(jié),文中針對(duì)的是wsgi連接方式,需要的朋友可以參考下2015-12-12
python 實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的示例
本篇文章主要分享python學(xué)生管理系統(tǒng)的使用,文章非常詳細(xì)地介紹了通過(guò)示例代碼實(shí)現(xiàn)的學(xué)生管理系統(tǒng),該系統(tǒng)對(duì)每個(gè)人的研究或工作都有一定的參考學(xué)習(xí)價(jià)值,希望你能在其中有所收獲。2020-11-11
Python2.7:使用Pyhook模塊監(jiān)聽(tīng)鼠標(biāo)鍵盤(pán)事件-獲取坐標(biāo)實(shí)例
這篇文章主要介紹了Python2.7:使用Pyhook模塊監(jiān)聽(tīng)鼠標(biāo)鍵盤(pán)事件-獲取坐標(biāo)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
python神經(jīng)網(wǎng)絡(luò)Xception模型復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Xception模型復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python自然語(yǔ)言處理停用詞過(guò)濾實(shí)例詳解
這篇文章主要為大家介紹了Python自然語(yǔ)言處理停用詞過(guò)濾實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
比較兩個(gè)numpy數(shù)組并實(shí)現(xiàn)刪除共有的元素
這篇文章主要介紹了比較兩個(gè)numpy數(shù)組并實(shí)現(xiàn)刪除共有的元素,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02

