小编Pun*_*ini的帖子

如何向下滚动Phantomjs以加载动态内容

我试图从用户向下滚动到底部(无限滚动)动态生成内容的页面中抓取链接.我曾尝试用Phantomjs做不同的事情但不能收集第一页以外的链接.让我们说加载内容的底部元素具有类.has-more-items.它在滚动期间加载最终内容之前可用,然后在DOM中变为不可用(显示:无).以下是我试过的事情 -

  • 之后将viewportSize设置为较大的高度 var page = require('webpage').create();

page.viewportSize = {width:1600,height:10000,};

  • 使用page.scrollPosition = { top: 10000, left: 0 }内部,page.open但没有效果像 -
page.open('http://example.com/?q=houston', function(status) {
   if (status == "success") {
      page.scrollPosition = { top: 10000, left: 0 };  
   }
});
Run Code Online (Sandbox Code Playgroud)
  • 也试过把它放在page.evaluate功能内但是给出了

参考错误:找不到变量页面

  • 尝试使用jQuery和JS代码page.evaluate,page.open但没有用 -

$("html,body").animate({scrollTop:$(document).height()},10,function(){// console.log('check for execution');});

既然如此,也在里面document.ready.类似的JS代码 -

window.scrollBy(0,10000)
Run Code Online (Sandbox Code Playgroud)

既然如此,也在里面 window.onload

我现在真的被打了两天而且找不到方法.任何帮助或提示将不胜感激.

更新

我在https://groups.google.com/forum/?fromgroups=#!topic/phantomjs/8LrWRW8ZrA0找到了一段有用的代码

var hitRockBottom = false; while (!hitRockBottom) {
    // Scroll the page …
Run Code Online (Sandbox Code Playgroud)

javascript dom screen-scraping web-scraping phantomjs

46
推荐指数
1
解决办法
3万
查看次数