愛奇藝彈幕爬取

上次說要爬取愛奇藝關於愛情公寓5的相關彈幕,然後今天看了一下,具體實現起來很簡單, 這次主要是做個demo

實現

首先還是打開愛奇藝,選擇愛情公寓5第一集,然後等待90s廣告。(這個時候可以打開pycharm把必備的requests什麼都寫好放着)

在這裏插入圖片描述
然後去network找,發現好像沒有明顯的danmu字樣,於是乎轉到elements,隨便點了一個彈幕,發現居然是動態加載的
在這裏插入圖片描述
那我想應該是有文件的,然後懶得找了,直接去network搜danmu看會搜到什麼吧,果然有個奇怪的網址
在這裏插入圖片描述
在這裏插入圖片描述
然後我點開網址預覽是一堆亂碼,下載下來一個.z文件的壓縮包,打不開。。。但是我堅信這就是彈幕,畢竟business:danmu太明顯了。然後用zlib打開,得到了我想要的。
在這裏插入圖片描述
其中content就是彈幕內容啦。
再來看看url的構造,其實可以簡化,只需要得到相應的tvid

#https://cmts.iqiyi.com/bullet/tvid倒數4位的前兩位/tvid最後兩位/tvid_300_x.z
#x的計算方式爲片子總時長除以300秒向上取整,即按每5分鐘一個包。

這樣只要遍歷x就能得到一集的彈幕,再遍歷所有tvid,就可以得到全部的彈幕。

demo代碼

import zlib
import requests

url='https://cmts.iqiyi.com/bullet/40/00/11298454000_300_1.z'
res=requests.get(url).content
zarray = bytearray(res)
xml=zlib.decompress(zarray, 15+32).decode('utf-8')
with open('./iqiyi.xml','w',encoding='utf-8') as f:
    f.write(xml)
f.close()

這就把.z文件以二進制重新編碼,寫成xml形式,當然你也可以不寫成xml,直接用正則提取xml其中的相關信息就好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章