Python得到彈幕并保存到Excel中怎么設(shè)置
hello,我是李華同學(xué),最近開始學(xué)習(xí)爬蟲,下面是我實現(xiàn)的一個得到彈幕的代碼
找一個的URL
想要得到一個網(wǎng)站的內(nèi)容,首先要找到你想要內(nèi)容的具體位置,首先你先找到一個有彈幕的地方,找到后按F12,找到在網(wǎng)絡(luò)下,然后刷新頁面,在左邊搜索欄搜history可以找到儲存彈幕的地址(圖1),彈幕地址具體情況具體分析。
在標(biāo)頭下的“請求URL”,后面那一串鏈接就是要爬取的位置。(圖2)
圖1
圖2
實現(xiàn)代碼過程
將Python代碼和Excel文件放在一個文件下
圖3
用request庫進(jìn)行操作
不會下載庫的同學(xué)可以在pycharm終端下用pip下載,也可以在設(shè)置setting的project下下載,具體步驟不會可以搜大佬的文章。
用requests對網(wǎng)站進(jìn)行訪問,這里用到了get請求方法,請求方法可以在之前找URL下看到。(圖2)
requests.get('https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory?roomid=5050')
對訪問的內(nèi)容進(jìn)行選擇
我這里就選擇了姓名和彈幕
for ac in d['data']['room']: s = "{}說:{}".format(ac['nickname'], ac['text'])
防止得到的內(nèi)容重復(fù)
用列表儲存爬取的數(shù)據(jù),用if條件判斷新爬取的內(nèi)容是否在列表ls中,如果不在就用append追加到列表中。
ls = [] if s not in ls: ls.append(ls)
把得到的數(shù)據(jù)保存到Excel中
在這個過程中用到了openpyxl庫。
首先在Excel中先寫下表頭(圖4),為接下來插入得到的內(nèi)容找位置,然后保存(記得爬取的時候不要打開Excel文件)。
# 打開文件 wb = openpyxl.Workbook() # 使用的工作對象創(chuàng)建一張表 sheet = wb.active # 在sheet1表中寫入內(nèi)容 插入內(nèi)容 sheet.append(['B友姓名', 'B友說的話'])
保存內(nèi)容,這個是借鑒一篇文章Python提取PDF發(fā)票信息保存Excel文件并制作EXE程序的全過程,具體的解釋可以看這位大佬的,還有實例。
print('B友姓名' + nickname, 'B友說的話' + text) print('開始寫入excel,請稍等...', end='') xx_info = [nickname, text] sheet.append(xx_info) print('寫入成功\n') # 關(guān)閉保存工作簿 wb.save('data.xls')
圖4
全部代碼(代碼的直接?。?/h2>
import random
import requests
import time
import openpyxl
# 打開文件
wb = openpyxl.Workbook()
# 使用的工作對象創(chuàng)建一張表
sheet = wb.active
# 在sheet1表中寫入內(nèi)容 插入內(nèi)容
sheet.append(['B友姓名', 'B友說的話']) #這是在excel第一行插入,可以相當(dāng)于一個文件的表頭
# 用列表儲存爬取內(nèi)容,防止出現(xiàn)相似值
ls = []
# 循環(huán)實時彈幕
while True:
# 爬取的直播間
r = requests.get('')#這里括號里放找到的URL
# 每次爬取的間隔,防止讓服務(wù)器崩潰
time.sleep(random.randint(1, 3))
# 將輸出的字符串內(nèi)容轉(zhuǎn)換成字典形式
d = eval(r.text)
# 在這兩字典中爬取
for ac in d['data']['room']:
s = "{}說:{}".format(ac['nickname'], ac['text'])
nickname = ac['nickname']
text = ac['text']
# 判斷輸出內(nèi)容是否重復(fù)
if s not in ls:
ls.append(ls)
# 確定沒有重復(fù)值了輸出
# 顏色
sheet.sheet_properties.tabColor = '000000'
print('B友姓名' + nickname, 'B友說的話' + text)
print('開始寫入excel,請稍等...', end='')
xx_info = [nickname, text]
sheet.append(xx_info)
print('寫入成功\n')
# 關(guān)閉保存工作簿
wb.save('data.xls')
import random import requests import time import openpyxl # 打開文件 wb = openpyxl.Workbook() # 使用的工作對象創(chuàng)建一張表 sheet = wb.active # 在sheet1表中寫入內(nèi)容 插入內(nèi)容 sheet.append(['B友姓名', 'B友說的話']) #這是在excel第一行插入,可以相當(dāng)于一個文件的表頭 # 用列表儲存爬取內(nèi)容,防止出現(xiàn)相似值 ls = [] # 循環(huán)實時彈幕 while True: # 爬取的直播間 r = requests.get('')#這里括號里放找到的URL # 每次爬取的間隔,防止讓服務(wù)器崩潰 time.sleep(random.randint(1, 3)) # 將輸出的字符串內(nèi)容轉(zhuǎn)換成字典形式 d = eval(r.text) # 在這兩字典中爬取 for ac in d['data']['room']: s = "{}說:{}".format(ac['nickname'], ac['text']) nickname = ac['nickname'] text = ac['text'] # 判斷輸出內(nèi)容是否重復(fù) if s not in ls: ls.append(ls) # 確定沒有重復(fù)值了輸出 # 顏色 sheet.sheet_properties.tabColor = '000000' print('B友姓名' + nickname, 'B友說的話' + text) print('開始寫入excel,請稍等...', end='') xx_info = [nickname, text] sheet.append(xx_info) print('寫入成功\n') # 關(guān)閉保存工作簿 wb.save('data.xls')
到此這篇關(guān)于Python得到彈幕并保存到Excel中怎么設(shè)置的文章就介紹到這了,更多相關(guān)Python彈幕保存到Excel中內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實現(xiàn)地標(biāo)景點識別功能
地標(biāo)景點識別是一種基于計算機視覺技術(shù)的應(yīng)用,旨在通過對圖像進(jìn)行分析和處理,自動識別出圖片中的地標(biāo)景點,本文將介紹地標(biāo)景點識別的背景和原理,并使用Python編程語言來實現(xiàn)一個簡單的地標(biāo)景點識別系統(tǒng),感興趣的朋友可以參考下2024-01-01python中的socket實現(xiàn)ftp客戶端和服務(wù)器收發(fā)文件及md5加密文件
這篇文章主要介紹了python中的socket實現(xiàn)ftp客戶端和服務(wù)器收發(fā)文件及md5加密文件的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04教你學(xué)會通過python的matplotlib庫繪圖
今天教大家如何學(xué)會通過python的matplotlib庫繪圖,文中有非常詳細(xì)的圖文解說及代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05對pandas replace函數(shù)的使用方法小結(jié)
今天小編就為大家分享一篇對pandas replace函數(shù)的使用方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05