2016-03-14 86 views
0
 var getMatches = function(){ 
var sait = 'https://www.website.com' 
request({ url: sait, jar: true}, function(error, response, html){ 
if(!error){ 
var $ = cheerio.load(html) 
var count = ($('.TheMatch').length) 
for(var i = 2; i< count + 2 ; i++){ 
    var live = ($('.TheMatch:nth-child('+i+') .LiveStatus').text()) 
    var nameMatch = ($('.TheMatch:nth-child('+i+') .MDxEventName').text()) 
    var time = ($('.TheMatch:nth-child('+i+') .DateTime').text().substring(8)) 
    var websiteCount = ($('.TheMatch:nth-child('+i+') .TotalBookies').text()) 
    if((websiteCount >= 25) && (live.length === 0)){ 
     console.log('match ' + nameMatch) 
     console.log('count Websites ' + websiteCount) 
    } 
}}})} 

我想在此網站上進行身份驗證並保存cookie我該怎麼做?並保存餅乾,所以每次我解析不需要登錄?使用節點js使用身份驗證報廢網站

回答

0

那麼,我做了類似的任務。但問題是它始終是特定於網站的。無論如何,實現它的方法是使用請求庫向網站的身份驗證端點發出發布請求。然後,響應對象將包含適當的cookie,如sessionID或其他內容。然後你保存這個cookie並做一個新的請求,從頭開始你想要的頁面。這裏是關於請求模塊中的cookie的文檔:https://github.com/request/request#requestcookie。這對我很好。

如何獲得:

request.post({ url: "website/signin", 
        form: { 
         login: 'login', 
         password: "password", 
         remember: 1 
        } 
       }, function(err, httpResponse, body) { 
        var cooka = false; 
        var cookies = httpResponse.headers['set-cookie']; 
        if (typeof cookies != "undefined") cooka = cookies[0]; 
        if (typeof cooka != "undefined" && cooka != false) { 
         self.sessionId = cooka.substring(10, cooka.indexOf(";")); 
        } else { 
         return self.emit("error", "Can't get session id"); 
        } 
       }); 

如何設置:

var options = { uri: "desired url" }; 
      var j = request.jar(); 
      if (worker.source == "coquette") { 
       var cookie = request.cookie('PHPSESSID=' + worker.sessionId); 
       j.setCookie(cookie, url); 
       options.jar = j; 
      } 
      request.get(options, function(error, response, body) { 
       if (error || response.statusCode != 200) { 

       } else { 
       // work with body body 
       } 
      }); 
+0

回答更新。 –

+0

我得到這個錯誤,不能找到工作人員http://s9.postimg.org/80ea6tr7j/Screen_Shot_2016_03_15_at_10_03_47_PM.png –

+0

因爲它是從我的項目複製/粘貼。即使我爲您提供了99%的所需,作爲開發人員,您自己也應該修復非常簡單的錯誤。 self.sessionId和worker.sessionId是相同的東西,只需將其更改爲var sessionId; –

相關問題