javascript - Casper.js 获取网页并显示

标签 javascript html casperjs

有没有什么办法可以使用casper.js登录页面然后显示页面? 我可以截屏,我希望它是实际页面。

到目前为止,这是我所拥有的,尽管我确信这是非常错误的:

var casper = require('casper').create({
 viewportSize: {
    width: 1365,
    height: 768
},
// engine: 'slimmerjs',
verbose: true,
logLevel: "debug",
pageSettings: {
loadImages: false,//The script is much faster when this field is set to false
loadPlugins: false,
userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36  (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36'
}
});

//First step is to open
casper.start().thenOpen("http://mysite/login", function() {
console.log("mysite website opened");
});

//Now we have to populate username and password, and submit the form
casper.then(function(){
console.log("Login using username and password");
this.evaluate(function(){
document.getElementById("user_email").value="me";
document.getElementById("user_password").value="password";
document.getElementById('new_user').submit();
});
});
casper.thenOpen('http://mysite/report/70?dashboard_id=2', function(){
console.log("Make a screenshot of morning info and save it as  pic.png"); 
this.wait(10000, function(){
this.captureSelector('pic.png','.highcharts- container');
});
});

casper.start("http://mysite/report/70?dashboard_id=2", function() {
this.page.switchToChildFrame(0);
this.page.switchToParentFrame();
});

casper.run(function() {
  this.exit();
});


casper.run();

最佳答案

如果您想捕获 HTML,这就是您在 Casper 中的做法。

在您想要进行此捕获的那一刻(登录后..),在等待快照的同一时间内..试试这个:

this.wait(10000, function(){
    this.captureSelector('pic.png','.highcharts- container');

    var HTML = document.createElement('textarea);
    HTML.innerHTML = this.getHTML();
    console.log(HTML.value);  // or use the variable for something else
});

使用 CasperJS 执行网页抓取已有 4 年,这是我能设计出的唯一有效的方法,并为我提供了良好的可解析 HTML。

关于javascript - Casper.js 获取网页并显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47673556/

相关文章:

javascript - 从 JQuery 获取表单输入值

javascript - 延迟 jQuery 脚本

javascript - 检测浏览器是否支持位置: fixed

html - CSS:两个div之间的复杂形状划分

javascript - 动态下拉列表从服务中选择第一个选项,第二个选项将选择所选服务的医生。

javascript - Google 基于 MySQL 和 PHP 结果以不同颜色绘制条形图

javascript - 创建数字数组后,Math.Max 在数组上返回 Nan

javascript - 如何列出 casperJS 页面加载的外部 javascript 资源?

javascript - 使用注入(inject)脚本在每个步骤请求 CasperJS 导航

javascript - 在不滚动的情况下停止无限滚动页面