Part1前言
前幾天刷到了程序員魚皮的自動回復視頻評論的視頻,于是我也想來試試!
Part2開始
第一步
打開想要自動回復評論的視頻url,打開調試模式!
然后找到可以觸發評論的網絡請求
可以看到我們的oid是可以唯一確定視頻的id,那么這個oid是怎么獲取的呢?于是我又一個一個接口的分析 于是找到了獲取Oid的請求
https://api.bilibili.com/x/web-interface/archive/stat?bvid=BV1SY4y187Zu
這個bvid不就是我們的視頻的url嗎?
這樣我們根據視頻的url獲取到bvid,然后根據bvid獲取到我們的oid 這樣我們的視頻的評論數據就抓到了!
第二步
那么由于視頻的評論拿到了,那么我們怎么去實現自動回復呢?回復的內容是不是應該根據評論來實現呢?于是就用到了AI機器人回復,可以根據傳入的評論,自動生成回復內容!
回復內容我們有了,那么怎么去實現自動回復呢?又去抓取回復評論的接口!
這樣我們是不是就能實現自動評論了!
第三步
然后開始我們的客戶端開發了!我想要的是只需要我輸入視頻的url,就可以實現自動回復,并將回復的內容推送給前端,所以這里我用了Vue和Signalr來實現
<script>new?Vue({el:?"#app",data:?{signalR:?null,name:?"",sendValue:?""},methods:?{initSignalR()?{var?_this?=?this;_this.signalR?=?new?signalR.HubConnectionBuilder().withUrl("http://localhost:64059/ChatHub").configureLogging(signalR.LogLevel.Information).build();try?{_this.signalR.start();}?catch?(err)?{console.log(err);}//監聽連接成功_this.signalR.on("Connected",?(message)?=>?{HeyUI.$Message(message)});_this.signalR.on("ReceiveMessage",?(user,?message)?=>?{HeyUI.$Notice({type:?"info",title:?user?+?"?回復?",content:?message});});},send()?{this.signalR.invoke("SendMessage",?this.name,?this.sendValue).catch(function(err)?{return?console.error(err.toString());});}},mounted()?{this.initSignalR();},})
</script>
效果如下:
但是這自動回復好像有點人工ZZ!
Part3致歉
對該視頻下評論的用戶帶來的不便,請見諒!
Part4聲明
總的來說,技術本無罪,但是你利用技術爬取別人隱私、商業數據,那你就是蔑視法律了,請各位守好各自的底線!