玖富娱乐平台全网唯一指定1956注册开户网站

puppeteer截图_玖富娱乐主管发布

日期:2019-01-09 浏览:
玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。

puppeteer是谷歌官方出品的一个经由过程 DevTools 协定掌握 headless Chrome 的Node库。能够经由过程Puppeteer的供应的api直接掌握Chrome模仿大局部用户操纵来举行UI Test或许作为爬虫接见页面来网络数据。

装置

直接运转装置敕令:

npm install puppeteer

若是涌现没法装置的题目,能够运用淘宝镜像。

puppeteer完成滑动截图

在我 puppeteer 运用截全屏的过程当中发明有些图片没法截取到,而实际上是因为有些图片是懒加载的,若是你没有滑动到图片的地位,那末这个图片是不会加载。

如今我的体式格局是接纳模仿浏览器滚动条滑动的体式格局滑动底部来使图片加载出来。

-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。-

代码以下:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();
    await page.goto('https://www.cnblogs.com/morethink/p/6525216.html');
    await page.setViewport({
        width: 1200,
        height: 800
    });

    await autoScroll(page);

    await page.screenshot({
        path: '1.png',
        fullPage: true
    });

    await browser.close();
})();


function autoScroll(page) {
    return page.evaluate(() => {
        return new Promise((resolve, reject) => {
            var totalHeight = 0;
            var distance = 100;
            var timer = setInterval(() => {
                var scrollHeight = document.body.scrollHeight;
                window.scrollBy(0, distance);
                totalHeight  = distance;
                if (totalHeight >= scrollHeight) {
                    clearInterval(timer);
                    resolve();
                }
            }, 100);
        })
    });
}

动图以下:

puppeteer 完成 html element 截图

在某些情况下我们只想要针对html的某个地位举行截图而不是针对页面截全屏。

puppeteer供应了ElementHandle.screenshot 要领,该要领参数和page.screenshot 一样。而ElementHandle 工具是页面内的Dom工具。能够资助我对 html element举行截图。如许的话你想截取页面的哪局部就截取页面的哪局部。

代码以下:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();
    await page.goto('https://www.cnblogs.com/morethink/p/6525216.html');
    await page.setViewport({
        width: 1200,
        height: 800
    });
    //猎取页面Dom工具
    let body = await page.$('#cnblogs_post_body');
    //挪用页面内Dom工具的 screenshot 要领举行截图
    await body.screenshot({
        path: '2.png'
    });
    await browser.close();
})();

参考文档

  1. https://github.com/GoogleChrome/puppeteer/blob/v1.11.0/docs/api.md#elementhandlescreenshotoptions
-玖富娱乐是一家为代理招商,直属主管信息发布为主的资讯网站,同时也兼顾玖富娱乐代理注册登录地址。


平台新闻

联系方式丨CONTACT

  • 全国热线:7711177
  • 传真热线:010-88888888
  • Q Q咨询:7711177
  • 企业邮箱:
首页
电话
短信