2016-01-23 104 views
0

我想網絡使用cheerio和HTTP中的HTML代碼節點JS網絡報廢在nodejs中使用cheerio?

部分抄襲:

<tr> 
    <td id="priceblock_saleprice_lbl" class="a-color-price a-size-base a-text-right a-nowrap">Sale:</td> 

    <td class="a-span12"> 
    <span id="priceblock_saleprice" class="a-size-medium a-color-price"><span class="currencyINR">&nbsp;&nbsp;</span> 585.00</span> 

    </td> 
</tr> 

的NodeJS代碼:

var sale_price = '#priceblock_saleprice'; 
      scraper(sale_price).filter(function(){ 
      var data_price = scraper(this); 
      console.log(data_price.text()); 
      scraped = scraped + data_price.text()+';'; 
      }); 

this code is giving 585 as output. 

,但在相同的:的

部分html頁面:

<tr id="priceblock_ourprice_row"> 
    <td id="priceblock_ourprice_lbl" class="a-color-secondary a-size-base a-text-right a-nowrap">Price:</td> 
    <td class="a-span12"> 
     <span id="priceblock_ourprice" class="a-size-medium a-color-price"><span class="currencyINR">&nbsp;&nbsp;</span> 329.00</span> 
    </td> 
</tr> 

代碼的NodeJS:

var mrp = '#priceblock_ourprice_lbl'; 
scraper(mrp).filter(function(){ 
      var data_mrp = scraper(this); 
      console.log(data_mrp.text()); 
      scraped = scraped + data_mrp.text()+';'; 
      }); 

它是不給輸出。

回答

1

你正在使用錯誤的ID ......這應該是priceblock_ourprice

var mrp = '#priceblock_ourprice'; 
scraper(mrp).filter(function(){ 
    var data_mrp = scraper(this); 
    console.log(data_mrp.text()); 
    scraped = scraped + data_mrp.text()+';'; 
}); 
+0

但它不工作我已經嘗試。 –

0

在第二個代碼片段中使用的ID是指向第一<td>元素,但你需要爲目標的第二<td>元素,所以使用 「#priceblock_ourprice」

+0

爲什麼第一個工作 –

+0

,因爲在第一個ID是正確的,它表明指向您的價格的跨度,也如果替換ID不起作用嘗試與 ID並得到它的子女 –

+0

你可以參考一些教程,我找到如何使用兒童和下一個等 –