我正在使用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中获取它。
我不确定这个解决方案有多脆弱,如果有人对某些带有分页内容的网址不介意分享。我想知道这是否有效,或者是否有人可以提供建议,如何改善这一点也会很好。