使用nodejs,cheerio来抓取paginate

时间:2018-06-09 17:20:15

标签: node.js fetch cheerio

如何从a pagination抓取数据?

我的代码适用于一个页面,但我需要废弃第2页第3页的所有数据...并推送到电子书阵列。

这是我的代码

function searchEbooks(query) {
    return fetch(getUrl(1, query))
        .then(res => res.text())
        .then(body => {
            const ebooks = [];    
            $('article').each(function(i, element) {
                const $element = $(element);
                const $title = $element.find('.entry-title a');
                const $image = $element.find('.attachment-post-thumbnail');
                const $description = $element.find('.entry-summary');
                const authors = [];
                $(element).find('.entry-author a').each(function(i, element) {
                    author = $(element).text();
                    authors.push(author);
                });
                const ebook = {
                    image: $image.attr('src'),
                    title: $title.text(),
                    description: $description.text(),
                    authors: authors,
                }
                ebooks.push(ebook);
            });
            return ebooks;
        });
}

我不知道该怎么做。请给我一个提示或一个例子。

我使用cherrio,node-fetch包。

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试此操作以获取下一个网址:

var href = $('.current+a').attr('href');

if(href){
    // you can check this url
} else {
    console.log('You get all page');
}