Node.js: как соскоблить сайт с нумерации прокрутки inifinite? - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь очистить сайт с бесконечной прокруткой.Пока что я могу успешно выскрести «первую» страницу, но не остальные.Максимальное значение 'paginationNumber' (он же число «страниц») колеблется и обычно составляет около 5-10.Каким-то образом я хочу перебрать paginationNumber, чтобы попытаться очистить все и объединить все ВСЕ в переменные siteBody, а не просто на первой странице.Для этого есть библиотека npm?У меня проблемы с обхватом головы.Вот код, который я использую для реализации всего лишь первой страницы:

  //THE HTTP REQUEST
  //define the callback functions for the http request
  var callback2 = function(err, httpResponse2, body){
   siteBody = body;
   if (err){throw err;}
   else {
        newFileActions();
      }
    }
  }

  var paginationNumber=0;
  var callback1 = function(err, httpResponse, body, paginationNumber){
    if (err){console.log(err); throw err;}
    else {
      var options2 = {
        //NOTE: urlString2 ends in "page=" so that the paginationNumber comes next
        url: urlString2+paginationNumber
        ,gzip: true
        ,headers:{
          'Host': hostName
          ,'User-Agent': myUserAgent
          ,'Accept': myAccept
          ,'Accept-Language': myAcceptLanguage
          ,'Accept-Encoding': myAcceptEncoding
          ,'Referer': "https://"+hostName
          ,'Cookie': httpResponse.headers["set-cookie"][0].substr(0,httpResponse.headers["set-cookie"][0].indexOf(";"))
          ,'Connection': "keep-alive"
          ,'Upgrade-Insecure-Requests': "1"
        }
      };
    request(options2, callback2);
    }
  };
 var callback0 = function(err, httpResponse0, body){
    if (err){throw err;}
    else {
    var options1 = {
    url: urlString1
    ,headers:{
    'Host': hostName
    ,'User-Agent': myUserAgent
    ,'Accept': myAccept 
    ,'Accept-Language':myAcceptLanguage 
    ,'Accept-Encoding': myAcceptEncoding 
    ,'Referer': "https://"+hostName+'/login'
    ,'Cookie': httpResponse0.headers["set-cookie"][0].substr(0,httpResponse0.headers["set-cookie"][0].indexOf(";"))
    ,'Content-Type':  "application/x-www-form-urlencoded"
    ,'Content-Length': Buffer.byteLength(querystring.stringify(postData))
    ,'Connection': "keep-alive"
    ,'Upgrade-Insecure-Requests': "1"
    ,'DNT': "1"
    ,'TE': "Trailers"
    }
    ,form: {email: myEmail, password: myPassword}
    };
    request.post(options1, callback1);
    }
  }
 var options0 = {
    url: urlString0
    ,headers:{
    'Host': hostName
    ,'User-Agent': myUserAgent
    ,'Accept': myAccept 
    ,'Accept-Language':myAcceptLanguage 
    ,'Accept-Encoding': myAcceptEncoding 
    ,'Referer': "https://"+hostName
    ,'Connection': "keep-alive"
    ,'Upgrade-Insecure-Requests': "1"
    }
   };


  request(options0, callback0);

Спасибо за любую помощь, которую вы можете оказать

...