网页捕获并保存到图像使用phantomjs LIB(Web page Capture and sav

2019-08-17 18:59发布

我在谷歌搜索得到任何JS LIB它可以捕获任何网站或网址的形象。 我才知道,phantomjs库可以做到这一点。 在这里,我有一个小的代码捕获并转换GitHub的主页,png图片

如果任何人都熟悉phantomjs那么请告诉我什么是此行的意义

var page = require('webpage').create();

在这里,我可以给任何名称,而不是网页?

如果我需要捕捉到任何网页的部分那我怎么才能与此库的帮助下做到这一点。 任何人都可以指导我。

var page = require('webpage').create();
page.open('http://github.com/', function () {
    page.render('github.png');
    phantom.exit();
});

https://github.com/ariya/phantomjs/wiki

谢谢

Answer 1:

下面是抓取图像的简单phantomjs脚本:

var page = require('webpage').create(),
system = require('system'),
address, output, size;


address = "http://google.com";
output = "your_image.png";
page.viewportSize = { width: 900, height: 600 };

page.open(address, function (status) {
    if (status !== 'success') {
        console.log('Unable to load the address!');
        phantom.exit();
    } else {
        window.setTimeout(function () {
            page.render(output);
            console.log('done');
            phantom.exit();
        }, 10000);
    }
})

哪里..

“地址”是你的URL字符串。

“输出”是你的文件名字符串。

又“宽度”和“高度”是捕捉到什么部位的面积尺寸(如果你想整个页面评论了这一点)

要在命令行中运行这个上面保存为“script_name.js和断火幻使得JS文件的第一个参数。

希望这可以帮助 :)



Answer 2:

你问行:

var page = require('webpage').create();

据我所知,该行做三件事情:它增加了一个模块require('webpage')然后创建PhantomJS网页对象.create()然后将该对象赋给var = page

命名为“网页”告诉它要添加的模块。

http://phantomjs.org/api/webpage/

我太需要一种方法来使用page.render()来捕获只是一个网页的部分,但我没有看到一个简单的方法来做到这一点。 这将是很好的选择由ID页面元素,只是呈现出基于它是任何大小的元素。 他们真的应该补充的是,PhantomJS的下一个版本。

现在,我唯一的解决方法是一个锚标记添加到我的网址http://example.com/page.html#element使页面滚动到我想要的元素,然后设置一个宽度和高度,靠拢在大小,我需要。

我最近发现,我可以呈现之前有些操作页面,所以我想尝试使用这种技术来隐藏所有除了一个我想捕捉的其他元素。 我没有试过呢,但也许我会有一些成功。 看到这个页面,看看他们是如何使用querySelector() https://github.com/ariya/phantomjs/blob/master/examples/technews.js



文章来源: Web page Capture and save to image using phantomjs lib