Node js和Phantom js[英] Node js and Phantom js

问题描述

我正在寻找一个页面作为学习 phantomjs 的练习,但是我目前遇到了一个问题.图像加载被推迟,所以我试图弄清楚如何让 phantom js 向下滚动并等待图像加载.滚动到页面底部不起作用,所以我想每 3 秒滚动 100 像素,直到它到达页面底部.我将如何实现这一目标?

const phantom = require('phantom');

(async function() {

  const instance = await phantom.create();
  const page = await instance.createPage();

  await page.on('onResourceRequested', function(requestData) {
    console.info('Requesting', requestData.url);
  });

  await page.open(<URL>);

  const js = await page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js');

  const data = await page.evaluate(function() {
    // Do something
  });

  page.render('test.pdf');  

  await page.close();
  await instance.exit();
})();

推荐答案

PhantomJS确实支持"滚动",有一个页面属性scrollPosition大概可以这样使用:

await page.property('scrollPosition', { top: 300, left: 0 });

您可以动态更改 scrollPosition,在一段时间内增加它,这应该会触发负责图像加载的回调.

这里是原始 PhantomJS 脚本中的一个示例,展示了跟踪 Twitter 时间线的技术.

本文地址:https://www.itbaoku.cn/post/1740106.html