Javascript查找和抓取分页网址

时间:2016-07-09 12:48:37

标签: javascript pagination web-scraping phantomjs

我正在使用phantomjs在一些网站上获取一些数据。他们往往有分页内容并有链接,但很多这些网站不遵循适当的添加标准 red=... 属性。

例如

<a href="http://example.com" rel="next">Next Page</a>

<a class="non-uniform" href="?p=2" data-metrics-link="next"><span jawsonly="next page"></span></a>

我如何使用javascript / phantomjs来获取这些分页链接?

修改

在环顾四周后,我找到了一些代码,给了我一些想法。最后我把它扔在了一起

var links = page.evaluate(function() {
    return [].map.call(document.getElementsByTagName('a'), function(link) {
        return link.getAttribute('href');
    });
});

var pages = links.join('\n').match(/\?page\=[0-9]/g);
pages = pages.sort().reduce(function(a, b){ if (b != a[0]) a.unshift(b); return a }, []);
pages.sort();
for(var i = 0; i < pages.length; i++) {
    console.log(i+" index "+pages[i]+" "+page.url+pages[i]);
}

我注意到所有分页内容在某个地方的网址中都有一个?page=所以我看了如何从phantomjs中获取它。

我不确定这个解决方案有多脆弱,如果有人对某些带有分页内容的网址不介意分享。我想知道这是否有效,或者是否有人可以提供建议,如何改善这一点也会很好。

0 个答案:

没有答案