zoukankan      html  css  js  c++  java
  • b站评论爬取

    var userData = {};
    var startPage = 0;
    var endPage = 0;
    var startTime = "";
    var endTime = "";
    var pickSum = 0;
    var dateItem = new Date();
    function StartDraw(_startPage, _endPage, _startTime, _endTime, _pickSum)
    {
      startPage = _startPage;
      endPage = _endPage;
      startTime = _startTime;
      endTime = _endTime;
      pickSum = _pickSum;
      GetUserData();
    }
    function GetUserData()
    {
      GetOneData(startPage, endPage);
    }
    function callback(data)
    {
    }
    function GetOneData(page, maxPage)
    {
      urlLocationParams = window.location.pathname.split("/");
      avID = urlLocationParams[urlLocationParams.length - 1].split("av")[1];
      var url = "https://api.bilibili.com/x/v2/reply?callback=callback&jsonp=jsonp&pn=" + page + "&type=1&oid=" + avID + "&sort=0&_=" + dateItem.getTime();
      $.ajax({
        url: url,
        type: 'get',
        dataType: 'jsonp',
        jsonpCallback: 'callback',
        success: function (data) {
          console.log(data);
          for (var j = 0; j < data.data.replies.length; j++) {
            var reply = data.data.replies[j];
            if (reply.ctime >= get_unix_time_stamp(startTime)
              && reply.ctime < get_unix_time_stamp(endTime)) {
              userData[reply.mid] = {};
              userData[reply.mid].uid = reply.mid;
              userData[reply.mid].floor = reply.floor;
              userData[reply.mid].name = reply.member.uname;
              userData[reply.mid].content = reply.content.message;
            }
          }
          page += 1;
          if (page <= maxPage)
          {
            GetOneData(page, maxPage)
          }
          else
          {
            PickUser();
          }
        }
      });
    }
    function PickUser()
    {
      userList = [];
      for (var user in userData)
      {
        userList.push(user);
      }
      shuffle(userList);
      for (var i = 0; i < pickSum; i++)
      {
        console.log(userData[userList[i]])
      }
    }
    function get_unix_time_stamp(strtime) 
    {
      if (strtime) {
        var date = new Date(strtime);
      } else {
        var date = new Date();
      }
      time = date.getTime() / 1000;
      return time;
    }
    function shuffle(array) {
      length = array.length;
      for (var index = 0; index < array.length; index++)
      {
        var temp = array[index];
        var changeIndex = RandomNumBoth(0, length - 1);
        array[index] = array[changeIndex];
        array[changeIndex] = temp;
      }
    }
    function RandomNumBoth(Min,Max){
      var Range = Max - Min;
      var Rand = Math.random();
      var num = Min + Math.round(Rand * Range); 
      return num;
    }
    
  • 相关阅读:
    fiddler无法抓取360浏览器包的问题
    腾讯云服务器上发送邮件连接超时(无法发送)的相关问题
    jQuery获取后台动态添加上去的选择器
    NOIP 模拟 $84; m 宝藏$
    NOIP 模拟 $83; m 铺设道路$
    NOIP 模拟 $83; m 传统艺能$
    NOIP 模拟 $83; m 时代的眼泪$
    NOIP 模拟 $83; m 树上的数$
    NOIP 模拟 $80; m 百鸽笼$
    NOIP 模拟 $80; m 滑稽树下你和我$
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10181969.html
Copyright © 2011-2022 走看看