2017-06-20 27 views
0

當我刮的網頁https://www.g2a.com/rising-storm-2-vietnam-steam-cd-key-global.html問題做網頁刷屏

我需要從表中數據的標題。

var express = require('express'); 
var fs = require('fs'); 
var request = require('request'); 
var cheerio = require('cheerio'); 
var app = express(); 

app.get('/scrape', function(req, res) { 

    url = 'https://www.g2a.com/rising-storm-2-vietnam-steam-cd-key-global.html'; 

    request(url, function(error, response, body) { 
     if (!error) { 
      var $ = cheerio.load(body); 


      var arr = []; 

      var title = $('.mp-user-rating tr').each(function() { 
       var tableData = $('.marketplace-name > .mp-rating-popup'); 
       arr.push({ 'title': tableData.text() }); 
      }); 
     } 
     res.send('Check your console!') 

    }); 
}) 
app.listen('8081'); 

console.log('Magic happens on port 8081'); 

exports = module.exports = app; 

這裏的數據是在第三列,並不能得到.mp-user-rating tr數據的預期。

Image

該圖像示出該表

任何幫助,將理解的結構。

+0

,什麼是錯誤? – mplungjan

+0

@mplungjan沒有錯誤 –

+0

你可能會在這裏得到更多答案:https://github.com/cheeriojs/cheerio/issues – mplungjan

回答

-1

所以,我去了頁面,並在控制檯中運行。

var arr = []; 
var title = jQuery('.mp-user-rating tr').each(function(i, element) { 
    var tableData = jQuery(element).find('.mp-rating-popup'); 
    arr.push({ 'title': tableData.text() }); 
}); 
console.log(arr); 

該數組由8個對象組成,每個對象中都有標題。

更新:

我使用您的代碼拉入了html信息。我認爲問題在於,html是由網站異步加載的,因此,拉動html只會檢索靜態標記。您需要使用PhantomJS或Chrome的無頭瀏覽器才能加載網站並允許加載異步信息,然後您可以獲取html。

在這裏看到的PhantomJS一些好的文檔:https://github.com/Medium/phantomjs

+0

謝謝你的答案;但它不工作,當我通過節點js –

+0

看到我更新的答案。 – matt

+0

你能否詳細說明一下? –