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;
    }
    
  • 相关阅读:
    HTML-DOM实例——实现带样式的表单验证
    HTML-DOM常用对象的用法(select/option/form/table)
    C++程序嵌入Python解释器二次开发
    线程池、协程
    Qt信号(SINGAL)与槽(SLOT)
    随机数
    字符串、内存拷贝
    模板元编程以及关键字template和typename
    std::thread,std::future,std::promise,std::async
    C++智能指针,RAII(资源获取即初始化) 原则
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10181969.html
Copyright © 2011-2022 走看看