2014-06-19 5 views
0

Я пишу скребок для получения файлов psp iso для загрузки по рейтингу. У меня есть трудное время для каждого рейтинга. Как я могу захватить этот элемент? Я включил моментальный снимок для справки. Элемент рейтинга находится в теге tr td.Скребок с Cheerio

var request = require('request'), 
    cheerio = require('cheerio'), 
    fs = require('fs'); 

var url = 'http://goo.gl/cc4HRc', 
    pspGames = []; 

request(url, function (error, response, html) { 
    if (!error && response.statusCode === 200) { 
    var $ = cheerio.load(html); 
    $('.gamelist', 'td').each(function() { 
     var links = $(this).attr('href'); 
     pspGames.push(links); 
    }); 
    } 
}); 

enter image description here

ответ

1

Глядя на ссылку, это выглядит следующим образом:

<tr> 
    <td> 
    <a class="index gamelist" title="Corpse Party - Book of Shadows (Japan) ISO Info and Download" href="/Sony_Playstation_Portable_ISOs/Corpse_Party_-_Book_of_Shadows_(Japan)/158702">Corpse Party - Book of Shadows (Japan)</a> 
    </td> 
    <td align="center">4.9504</td> 
</tr> 

Вы просто должны сделать: $('.gamelist').each(

+0

Я был немного повесил трубку, если мой селектор был прав. Как я могу инкапсулировать этот рейтинг 4.9504? Это атрибут? – theGrayFox

+0

$ (this) .parents ('tr'). Find ('td'). Last(). Html() – tpae

+0

Я бы так и не получил. Я читал документы и не мог найти ничего похожего на этот случай. Для дальнейшего использования, как вы пришли к этому? По достоинству оцените вашу помощь. Кроме того, почему вы просто нацелились на '' gamelist'' вместо '' '.gamelist, td'''. – theGrayFox

1

Я не знаю, как вы собираетесь хранить рейтинг, но, возможно, что-то вроде этого поможет:

$('.gamelist').each(function() { 
    var link = $(this.attr('href')); 
    var rating = $(this).parent().siblings().first().text(); 
    pspGames.push({"link": link, "rating": rating}); 
}); 
+0

Чаще всего мне придется использовать хеш, разобрать плавать и написать условное, чтобы проверить, превышает ли он определенный рейтинг, а затем добавить. Мне нужно прочитать родительский(). Красиво сделано! – theGrayFox

Смежные вопросы