自動加載評論

這篇文章講的是小白在電腦的瀏覽器裏怎麼偷懶,自動翻wb評論到最早的評論。目前採用的方法爲:每1秒自動點擊“加載更多”按鈕。

(其實這是最蠢的辦法,但是其他的辦法的話,wb的接口根本不支持50頁之後的數據,返回的直接是空的數據。而這種能穩定請求到評論。所以還是放出了這個辦法。有能拿到50頁以後數據的童鞋求告知 T^T)

【聲明:本文章的示例截圖因爲沒有得到對方授權,所以作了馬賽克處理。】

準備

  1. 瀏覽器
    你需要在電腦上打開一個瀏覽器。推薦使用chrome(谷歌瀏覽器)或firefox(火狐瀏覽器)。下面用chrome作示範。
  2. 找到目標微博
    在瀏覽器裏打開wb,並登陸。
    找到你要翻評論的那條wb,通過點擊評論按鈕展開評論列表,並在評論底部點擊“查看更多”跳轉到此條wb的詳情頁。
    頁面大概長這樣
    在這裏插入圖片描述
  3. 按時間排序並將頁面滾動到底部
    點擊"按時間",然後滾動到頁面底部,看見“查看更多”按鈕。 注意,一定要在有“查看更多”按鈕的時候纔可以運行下面的代碼,不然不起效果的。
    在這裏插入圖片描述

代碼

  1. 在網頁裏敲一下鍵盤的F12,或者ctrl+shift+i,或者鼠標右鍵點擊“檢查”(firefox是“檢查元素”),喚起開發者工具。
    喚起後的界面如下:
    在這裏插入圖片描述
  2. 點擊上圖的console(firefox裏可能叫“控制檯”),進入控制檯,那麼你應該看到這樣的畫面:
    在這裏插入圖片描述
  3. 運行代碼
    將以下代碼拷貝後,在上圖界面處粘貼,然後回車運行即可。
    聰明的小夥伴肯定知道不能隨便運行一段別人給的不明代碼,萬一cookie被拿到了豈不是會被盜取賬戶。所以我在每行代碼上都加了解釋,說明這行代碼幹了啥。
//下面這行是用來記錄當前查詢了幾次
var i = 0;
//這行的意思是定時
var timeId = setInterval(() => {
  //當找不到"加載更多"按鈕時
  if (!document.getElementsByClassName("WB_cardmore")[0]) {
    //關閉定時
    clearInterval(timeId);
    //提示找不到"加載更多"按鈕了
    console.log("找不到'加載更多'按鈕");
  } else { //當找得到"加載更多"按鈕時
    //次數加1
    i++;
    //下面這行的意思是自動點擊"加載更多"按鈕
    document.getElementsByClassName("WB_cardmore")[0].click();
    //這行的意思是自動滾動到底部
    window.scrollTo({ top: document.body.scrollHeight, behavior: "smooth" });
    //輸出現在是第幾次自動查詢
    console.log("第" + i + "次");
  }
}, 1000); //這行的意思是每1000毫秒執行一次上面的行爲
  1. 運行結果
    此段代碼的運行結果應該是自動滾動並一秒一次加載評論,運行一段時間後界面如下:
    在這裏插入圖片描述

end

好了,現在等着就好了。可以洗個水果喝杯水啥的(=╹▽╹=)。

wb的策略是1次拉15條評論,所以你可以根據你打開這條wb時的評論總數目估計一下多久能翻到沙發。
舉個栗子:我截圖用的這條wb的當前評論有108928條,那麼我需要等待108928/15=7262秒,也就是2小時才能翻到,這還不算wb服務器報錯的情況,也不算內容太多導致電腦卡死的情況。。。
所以這個方法真的不適合在太多評論的時候使用。10萬什麼的真的壓力大。。當然就算是10萬的評論,努努力也是可以優化的,但是目前還沒做這方面的codding,因爲我懶_(:з」∠)_。hhh是因爲沒有人用啦,所以沒有這個需求場景,就沒有動力去搞。
這段代碼設想的場景是最多一兩萬的評論,比如發完一條wb然後使用,這時候最多也就1w條評論,那麼11分鐘就可以翻到底了。不然一方面等待的時間太久了,另一方面wb服務器可能會出錯。

當然,如果你膽子大,也可以改短定時的時間以縮短翻沙發的時間,比如從1000ms改爲500ms一次(甚至1ms一次哈哈哈哈哈)。但是我真誠地建議你不要作,因爲wb服務器對於請求的次數有限制的,請求太快或者太多,就會被封ip。
我第一次用這玩意兒測試的時候,莽,用了100ms即0.1s一次。
然後幾分鐘後我就被渣浪封禁了1小時:)
而1s一次的這個頻率,我上一次測試的時候是在發了1300+次請求(即2萬條評論)之後,wb服務器太渣導致返回的結果出問題。。。但是我並沒有被封。所以這個方案還是可行的,就耐心等待翻到沙發啦~

(這段程序其實相當簡陋。既沒有在翻到底的時候播放好運來(…要不我回頭給加上吧…)提示用戶,也沒有解決過多的評論可能導致內存不足的情況,因爲寫的時候就只是考慮較少的評論的情況。有任何使用問題,歡迎wb上私我嗷!給上鏈接
此方案寫於2020.05.07,如果後面wb更新了這個方法失效了,歡迎來敲我QAQ)

(至於手機上的微博要怎麼翻沙發,沒救了,等死吧,告辭.jpg。。。。
哈哈哈其實分情況討論。首先手機的網頁版微博,無論wap還是觸屏版的,都不太能完整加載評論。wap的只能看50頁數據,觸屏版的我1s一次加載,幾分鐘後報錯且封禁了。。。所以手機的網頁版先排除。
那麼app呢,做麼也不是不能做,但是很麻煩,特別是考慮到需要能隨時跳轉到某個人的主頁,查看某人頭像之類,其實微博的基本功能都要實現。還不如直接搞個按鍵精靈之類的玩意兒自動往上拉評論得了。。。)

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