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;
    }
    
  • 相关阅读:
    [ZOJ 4062][2018ICPC青岛站][Plants vs. Zombies]
    [Wannafly挑战赛28][B msc和mcc][预处理+枚举]
    [codeforces Mail.Ru Cup 2018 Round 1 D][ xor 操作]
    [codeforces round#475 div2 ][C Alternating Sum ]
    [zoj4045][思维+dfs]
    [zoj4046][树状数组求逆序(强化版)]
    费马大定理以及求解a^2+b^2=c^2的奇偶数列法则
    【HDOJ3567】【预处理bfs+映射+康拓展开hash】
    POJ1279 Art Gallery 多边形的核
    第八周 Leetcode 44. Wildcard Matching 水题 (HARD)
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10181969.html
Copyright © 2011-2022 走看看