精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python爬蟲,最新的B站彈幕和評論爬蟲,你們要的冰冰來啦!

開發 前端
?最近想爬下B站的彈幕和評論,發現網上找到的教程基本都失效了,畢竟爬蟲和反爬是屬于魔高一尺、道高一丈的雙方,程序員小哥哥們在網絡的兩端斗智斗勇,也是精彩紛呈。

最近想爬下B站的彈幕和評論,發現網上找到的教程基本都失效了,畢竟爬蟲和反爬是屬于魔高一尺、道高一丈的雙方,程序員小哥哥們在網絡的兩端斗智斗勇,也是精彩紛呈。

當然了,對于爬蟲這一方,爬取網站數據,一般目的都是比較明確的,比如我這里就是為了冰冰,廢話不多說,開干!

獲取彈幕數據

這里先聲明一點,雖然網絡上的整體教程都失效了,但是有一些步驟還是可以參考的,比如我們可以知道,對于彈幕數據,我們是可以通過如下的一個接口來獲取的。

??https://comment.bilibili.com/xxxx.xml??

在瀏覽器打開可以看到如下:

圖片

數據還是非常干凈的,那么下一步就是看如何獲取這個 xml 的 url 地址了,也就是如何獲取 324768988 ID;

接下來我們搜索整個網頁的源碼,可以發現如下情況;

圖片

也就是說,我們需要的 ID 是可以在 script 當中獲取的,下面就來編寫一個提取 script 內容的函數。

def getHTML_content(self):
# 獲取該視頻網頁的內容
response = requests.get(self.BVurl, headers = self.headers)
html_str = response.content.decode()
html=etree.HTML(html_str)
result=etree.tostring(html)
return result

def get_script_list(self,str):
html = etree.HTML(str)
script_list = html.xpath("http://script/text()")
return script_list

拿到所有的 script 內容之后,我們再來解析我們需要的數據。

script_list = self.get_script_list(html_content)
# 解析script數據,獲取cid信息
for script in script_list:
if '[{"cid":' in script:
find_script_text = script
final_text = find_script_text.split('[{"cid":')[1].split(',"page":')[0]

最后,我們再把整體代碼封裝成一個類,就完成了彈幕抓取的數據收集工作了。

spider = BiliSpider("BV16p4y187hc")
spider.run()

結果如下:

圖片

獲取評論數據

對于評論數據,可能要復雜一些,需要分為主(main)評論和回復主評論的 reply 評論。

我們通過瀏覽器工具抓取網頁上的所有請求,然后搜索 reply,可以得到如下結果:

圖片

我們先來看看 main 請求,整理后通過瀏覽器訪問如下:

圖片

也可以直接通過 requests 請求;

圖片

通過觀察可以得知,響應消息里的 replies 就是主評論內容,同時我們還可以改變 url 當中的 next 參數來翻頁,進而請求不同的數據。

這里我們再關注下 rpid 參數,這個會用于 reply 評論中。

再來看看 reply 評論,同樣可以使用 requests 直接訪問,同時 url 當中的 root 參數就是我們上面提到的 rpid 參數。

圖片

我們厘清了上面的關系之后,我們就可以編寫代碼了;

def get_data(data):
data_list = []
comment_data_list = data["data"]["replies"]
for i in comment_data_list:
data_list.append([i['rpid'], i['like'], i['member']['uname'], i['member']['level_info']['current_level'], i['content']['message']])
return data_list


def save_data(data_type, data):
if not os.path.exists(data_type + r'_data.csv'):
with open(data_type + r"_data.csv", "a+", encoding='utf-8') as f:
f.write("rpid,點贊數量,用戶,等級,評論內容\n")
for i in data:
rpid = i[0]
like_count = i[1]
user = i[2].replace(',', ',')
level = i[3]
content = i[4].replace(',', ',')
row = '{},{},{},{},{}'.format(rpid,like_count,user,level,content)
f.write(row)
f.write('\n')
else:
with open(data_type + r"_data.csv", "a+", encoding='utf-8') as f:
for i in data:
rpid = i[0]
like_count = i[1]
user = i[2].replace(',', ',')
level = i[3]
content = i[4].replace(',', ',')
row = '{},{},{},{},{}'.format(rpid,like_count,user,level,content)
f.write(row)
f.write('\n')


for i in range(1000):
url = "https://api.bilibili.com/x/v2/reply/main?jsnotallow=jsonp&next={}&type=1&oid=972516426&mode=3&plat=1&_=1632192192097".format(str(i))
print(url)
d = requests.get(url)
data = d.json()
if not data['data']['replies']:
break
m_data = get_data(data)
save_data("main", m_data)
for j in m_data:
reply_url = "https://api.bilibili.com/x/v2/reply/reply?jsnotallow=jsonp&pn=1&type=1&oid=972516426&ps=10&root={}&_=1632192668665".format(str(j[0]))
print(reply_url)
r = requests.get(reply_url)
r_data = r.json()
if not r_data['data']['replies']:
break
reply_data = get_data(r_data)
save_data("reply", reply_data)
time.sleep(5)
time.sleep(5)

爬取過程中:

圖片

這樣,針對一個冰冰視頻,我們就完成了上千評論的抓取;

可視化

下面我們簡單做一些可視化動作;

先來看下我們爬取的數據整體的樣子:

圖片

因為數據中有一些空值,我們來處理下:

df_new = df.dropna(axis=0,subset = ["用戶"])

下面就可以作圖了,GO!

使用 pyecharts 還是我們的首選,畢竟編寫容易

評論熱度

df1 = df.sort_values(by="點贊數量",ascending=False).head(20)

c1 = (
Bar()
.add_xaxis(df1["評論內容"].to_list())
.add_yaxis("點贊數量", df1["點贊數量"].to_list(), color=Faker.rand_color())
.set_global_opts(
title_opts=opts.TitleOpts(title="評論熱度Top20"),
datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
)
.render_notebook()
)

圖片

等級分布

pie_data = df_new.等級.value_counts().sort_index(ascending=False)
pie_data.tolist()
c2 = (
Pie()
.add(
"",
[list(z) for z in zip([str(i) for i in range(6, 1, -1)], pie_data.tolist())],
radius=["40%", "75%"],
)
.set_global_opts(
title_opts=opts.TitleOpts(title="等級分布"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
.render_notebook()
)

圖片

評論詞云

def wordcloud(data, name, pic=None):
comment = jieba.cut(str(data), cut_all=False)
words = ' '.join(comment)
img = Image.open(pic)
img_array = np.array(img)
wc = WordCloud(width=2000, height=1800, background_color='white', font_path=font, mask=img_array,
stopwords=STOPWORDS, contour_width=3, contour_color='steelblue')
wc.generate(words)
wc.to_file(name + '.png')

wordcloud(df_new["評論內容"], "冰冰", '1.PNG')

圖片

好了,今天的分享就到這里,喜歡冰冰就點個在看吧!

責任編輯:武曉燕 來源: 蘿卜大雜燴
相關推薦

2025-04-28 08:59:25

2018-01-04 09:20:55

python爬蟲視頻彈幕

2021-11-09 09:46:09

ScrapyPython爬蟲

2021-11-08 14:38:50

框架Scrapy 爬蟲

2017-08-09 15:27:33

python爬蟲開發工具

2018-01-30 18:15:12

Python網絡爬蟲gevent

2018-01-09 18:06:41

Python爬蟲技巧

2020-10-19 19:25:32

Python爬蟲代碼

2018-06-05 09:13:47

2024-06-07 08:56:43

HTTPPythonSelenium

2020-11-05 09:26:55

Cookie和Sess

2016-10-13 15:51:50

2019-06-18 10:49:41

Python技術web

2016-10-20 20:21:09

Python爬蟲技巧

2016-10-21 14:35:52

Pythonwebget方法

2018-01-29 09:28:44

2019-03-22 08:25:20

x86PythonARM

2021-08-10 09:01:48

Python網絡爬蟲自動化

2020-05-20 11:17:29

緩存服務器地址
點贊
收藏

51CTO技術棧公眾號

男女男精品视频网站| 久久久久久久久久久久久国产精品| 一级特黄aaaaaa大片| 亚洲国产精品久久久天堂| 欧美喷潮久久久xxxxx| 亚洲免费久久| 亚洲毛片在线播放| 奇米色777欧美一区二区| 久久国产精彩视频| 美女又爽又黄视频毛茸茸| 国产美女久久| 精品福利视频导航| 亚洲日本无吗高清不卡| 高潮毛片7777777毛片| 日本美女一区二区| 午夜精品久久久久久久99热 | 天堂а√在线中文在线新版| 欧美日韩国产传媒| 亚洲第一天堂无码专区| www.桃色.com| 成人看片网页| 精品成人在线视频| 青青青在线观看视频| a黄色在线观看| 99久久精品情趣| 91天堂在线视频| 波多野结衣视频观看| 影音先锋久久久| 久久综合色88| 69视频在线观看免费| 国产精品超碰| 欧美大片在线观看一区二区| 欧美大尺度做爰床戏| 美女高潮在线观看| 亚洲成人激情自拍| 青青青在线观看视频| 成人看片免费| 国产精品国产a级| 日韩欧美亚洲日产国| 天天色综合av| 成人app下载| 国产精品久久7| 精品人妻久久久久一区二区三区| 免费观看30秒视频久久| 国产精品成人久久久久| 三级网站在线播放| 久久精品亚洲| 欧美在线免费看| 国产无遮挡呻吟娇喘视频| 1000部精品久久久久久久久| 久久久久久久久久久免费| 成人在线观看小视频| 偷拍欧美精品| 欧美成aaa人片免费看| 国产麻豆视频在线观看| 99久久夜色精品国产亚洲1000部| 中文字幕精品久久| 波多野结衣家庭教师在线观看 | 国产卡一卡二在线| 黄a在线观看| 亚洲欧美日韩国产中文在线| 亚洲欧美一二三| av片在线观看免费| 亚洲最新视频在线观看| 国产一线二线三线女| 99久久精品免费看国产小宝寻花| 亚洲一区在线视频| 国产一区二区网| 怡红院成人在线| 欧美日韩色综合| 91精品国产三级| 综合视频一区| 精品视频偷偷看在线观看| 亚洲永久无码7777kkk| 久久97视频| 色婷婷av一区二区三区在线观看| 欧美a级片免费看| 影音先锋日韩在线| 久久久之久亚州精品露出| 中文字幕第15页| 日本午夜一区二区| 97在线电影| 日本韩国精品一区二区| 国产精品女主播av| 欧美国产综合在线| 欧美特黄aaaaaaaa大片| 欧美日韩精品一区二区三区四区 | 中文字幕第一页在线播放| 九九国产精品视频| 国内精品二区| 求av网址在线观看| 亚洲成人一区在线| 国产野外作爱视频播放| 亚洲高清在线一区| 亚洲图片在区色| 青娱乐国产精品| 久久国产毛片| 99国产在线| 国产三级在线免费观看| 亚洲影院在线观看| 日韩福利视频在线| 亚洲专区**| 尤物yw午夜国产精品视频| 欧美国产在线看| 丝袜诱惑制服诱惑色一区在线观看| 91精品啪aⅴ在线观看国产| 婷婷色在线视频| 成人欧美一区二区三区白人 | 国产精品一二三| 日本在线播放不卡| brazzers在线观看| 制服丝袜成人动漫| 亚洲图片另类小说| 伊人精品成人久久综合软件| 国产日产亚洲精品| 你懂的视频在线播放| 一区二区三区在线视频观看58| 国产又黄又猛视频| 精品三级av| 欧美精品免费看| 亚洲综合精品在线| 国产亚洲精品精华液| 九一国产精品视频| 136国产福利精品导航网址应用| 一区二区欧美亚洲| 日韩在线视频不卡| 波多野结衣一区二区三区| 麻豆md0077饥渴少妇| 成人1区2区| 亚洲性生活视频| 天天操天天操天天操天天| 国产成人av一区二区三区在线 | 久久99久久99| 无遮挡亚洲一区| 粉嫩一区二区| 日韩精品在线私人| 91在线看视频| 99视频一区二区三区| 阿v天堂2018| 91麻豆精品激情在线观看最新| 精品久久久91| 91麻豆成人精品国产| 国产精品婷婷午夜在线观看| aaaaaa亚洲| 狠狠色丁香婷婷综合影院| 欧洲精品在线视频| 国产日产精品久久久久久婷婷| 色综合久久久久| 久久久久久国产精品无码| 亚洲欧美视频一区二区三区| 精品欧美一区二区三区久久久| 55av亚洲| 国产丝袜一区视频在线观看| 一区二区三区福利视频| 久久综合久久99| 亚洲一区二区蜜桃| 日韩一级毛片| 亚洲最大福利视频| 24小时免费看片在线观看| 亚洲第一中文字幕在线观看| 黄色片视频网站| 国产日本一区二区| 波多野结衣国产精品| 亚洲情侣在线| 国偷自产av一区二区三区小尤奈| av中文在线资源库| 亚洲人成电影网站色…| 中文字幕欧美色图| 亚洲女人****多毛耸耸8| 麻豆短视频在线观看| av成人黄色| 色综合久久88色综合天天提莫| 国产成人毛片| 欧美高跟鞋交xxxxxhd| 天天操天天射天天舔| 色诱视频网站一区| 日韩福利小视频| 不卡视频在线看| 在线视频日韩一区| 欧美色综合网| 日韩不卡av| 麻豆国产精品| 国产成人激情视频| 黄色的网站在线观看| 日韩不卡在线观看| 一区二区美女视频| 激情成人在线视频| 激情高潮到大叫狂喷水| 不卡视频在线看| 日本爱爱免费视频| 在线国产欧美| 亚洲亚洲精品三区日韩精品在线视频 | 日本女优一区| 高清视频一区| 成人在线不卡| 午夜精品久久久久久久久久久久久| 高清福利在线观看| 精品电影一区二区三区 | 国产剧情av麻豆香蕉精品| 欧美日韩一区二区视频在线| 日韩在线你懂得| 5252色成人免费视频| 国内精品久久久久久野外| 日韩av在线免费观看| 97视频久久久| 国产欧美日韩| 国产精品一区二| www.成人在线.com| 国产成人在线一区二区| 欧美人与性动交α欧美精品济南到 | 久久免费视频在线观看| 免费高清完整在线观看| 亚洲欧美自拍一区| 全国男人的天堂网| 7777精品伊人久久久大香线蕉超级流畅| 日本在线观看中文字幕| 综合久久国产九一剧情麻豆| 久久精品国产亚洲av麻豆| 风间由美一区二区三区在线观看| 99sesese| 视频一区视频二区中文| 欧美不卡在线播放| 在线精品福利| 久久人妻无码一区二区| 天天综合久久| 亚洲资源视频| 波多野结衣在线观看一区二区三区| 精品伦精品一区二区三区视频| 国产精品亚洲四区在线观看| 国产色婷婷国产综合在线理论片a| 在线免费三级电影网站| 91成品人片a无限观看| 色www永久免费视频首页在线| 色av中文字幕一区| 香蕉视频在线看| 色天天综合狠狠色| 香蕉视频在线播放| 神马久久久久久| 欧美精品电影| 久久精品国产v日韩v亚洲| fc2在线中文字幕| 在线播放日韩欧美| 91在线看片| 日韩在线观看网址| 日本中文字幕在线2020| 日韩在线观看你懂的| 黄色在线播放网站| 久久手机精品视频| 永久免费网站在线| 欧美俄罗斯性视频| 丁香影院在线| 2021国产精品视频| 91精品韩国| 国产日韩欧美在线播放| 色综合视频一区二区三区日韩| 国产日本欧美一区| 伊人久久亚洲| 九九久久99| 久久av免费看| 在线码字幕一区| 综合激情网站| 亚洲 欧美 综合 另类 中字| 一本久道久久久| 国内外免费激情视频| 奇米影视在线99精品| 中文字幕第一页在线视频| 国产乱码精品一区二区三区忘忧草 | 免费视频久久久| 欧美三级欧美一级| 国产成a人亚洲精v品无码| 精品国产sm最大网站免费看| 神马午夜电影一区二区三区在线观看| 亚洲开心激情网| 国产三区在线观看| 91国产精品视频在线| 成人在线视频播放| 99精品99久久久久久宅男| 色综合久久中文| av动漫免费观看| 日韩亚洲精品在线| 欧美wwwwwww| av不卡在线观看| 天美传媒免费在线观看| 亚洲高清不卡在线| 中文字幕91爱爱| 精品国精品国产尤物美女| 韩国中文字幕2020精品| 欧美巨猛xxxx猛交黑人97人| 性国裸体高清亚洲| 91在线视频九色| 真实原创一区二区影院| 综合操久久久| 久久精品一区二区三区中文字幕| 夜夜夜夜夜夜操| 91麻豆蜜桃一区二区三区| 尤物在线免费视频| 日本道免费精品一区二区三区| 国产视频第一页| 亚洲视频在线观看视频| 日韩欧美一起| 国产在线观看精品| 婷婷亚洲精品| 国产精品videossex国产高清| 日韩—二三区免费观看av| 最新中文字幕日本| 中文字幕一区不卡| 亚洲色成人www永久网站| 欧美成人女星排行榜| 日本天堂在线观看| 国产精品igao视频| 精品三级av| 久久综合久久久久| 精品在线视频一区| 波多野结衣一二三四区| 狠狠综合久久av一区二区小说| 国产成人三级一区二区在线观看一| 亚洲一级黄色片| 无遮挡在线观看| 狠狠色综合网站久久久久久久| 亚洲激情中文| 午夜一区二区视频| 国产精品热久久久久夜色精品三区| 国产微拍精品一区| 精品国产91乱码一区二区三区| 国产黄色小视频在线| 国产精品欧美一区二区三区奶水 | 亚洲一区精品视频| 日韩激情在线观看| 免费污网站在线观看| 精品久久久香蕉免费精品视频| 亚洲精品国产手机| 欧美高清在线视频观看不卡| 经典三级久久| 欧美少妇在线观看| 国产精品一区二区x88av| 午夜国产小视频| 欧美精品在线观看播放| 日本美女在线中文版| 国产在线不卡精品| 香蕉av一区二区| 亚洲一区二区图片| 一区二区久久久| 懂色av蜜臀av粉嫩av分享吧| 国模精品系列视频| 欧美日韩精品一区二区三区在线观看| 国产无限制自拍| 99视频精品在线| 人人草在线观看| 亚洲午夜精品视频| 久久精品国产福利| 国产日韩视频在线播放| 精品一区二区三区免费| 免费中文字幕在线| 精品欧美乱码久久久久久 | 亚洲va在线va天堂| 午夜视频www| 国产成人高潮免费观看精品| 日本电影一区二区| 色黄视频免费看| 亚洲成人免费电影| 成人免费高清在线播放| 成人亲热视频网站| 国产精品mv在线观看| 亚洲图片综合网| 在线免费av一区| 国产一区久久精品| 国产精品theporn88| 伊人久久婷婷| b站大片免费直播| 欧美放荡的少妇| heyzo高清在线| 日韩精品最新在线观看| 国产一区二区美女| 麻豆久久久久久久久久| 中文字幕欧美精品在线| 日韩高清一区| 国产黄色特级片| 亚洲摸摸操操av| 日韩精品福利| 91视频88av| 麻豆久久婷婷| 国产黄色片在线免费观看| 国产丝袜一区二区三区免费视频| 日本午夜免费一区二区| 欧美一区二区三区综合| 久久久影视传媒| 国产丝袜在线视频| 日本午夜人人精品| 欧美日韩亚洲一区| 中文字幕 自拍| 精品国产3级a| 一区二区三区日本视频| 免费在线激情视频| 亚洲情趣在线观看| 国产香蕉在线| 国产精品久久久久久久免费大片 | 久久精品道一区二区三区| 男人与禽猛交狂配| 有码中文亚洲精品| 网曝91综合精品门事件在线 |