login - 加载网页不完整 Phantomjs
问题描述
我在捕获和加载网页时遇到问题: https ://myaccount.nytimes.com/auth/login
缺少用户名和密码字段以及提交按钮。可能是什么原因?谢谢
正如您所看到的,下面列出的代码会一一等待要加载的所有资源。
我没有编写代码,但是它非常出色并且经过了许多人的测试。原件可以在这里找到: https ://gist.github.com/cjoudrey/1341747 (所有的功劳都归功于编写它的人。)
var resourceWait = 3000,
maxRenderWait = 30000,
url = 'https://myaccount.nytimes.com/auth/login'; //'https://twitter.com/#!/nodejs';
var page = require('webpage').create(),
count = 0,
forcedRenderTimeout,
renderTimeout;
page.viewportSize = { width: 1280, height : 1024 };
function doRender() {
page.render('twitter.png');
phantom.exit();
}
page.onResourceRequested = function (req) {
count += 1;
console.log('> ' + req.id + ' - ' + req.url);
clearTimeout(renderTimeout);
};
page.onResourceReceived = function (res) {
if (!res.stage || res.stage === 'end') {
count -= 1;
console.log(res.id + ' ' + res.status + ' - ' + res.url);
if (count === 0) {
renderTimeout = setTimeout(doRender, resourceWait);
}
}
};
page.open(url, function (status) {
if (status !== "success") {
console.log('Unable to load url');
phantom.exit();
} else {
forcedRenderTimeout = setTimeout(function () {
console.log(count);
doRender();
}, maxRenderWait);
}
});
解决方案
推荐阅读
- sql - 查询后结果不同
- javascript - 在循环内使用延迟函数递增日期
- bash - linux终端smtp登录
- c# - 如何在asp.net core的中间件中修改httpcontext中的request/response?
- docker - 带有进程的 CMD 命令中的 Docker ARG
- python - 从 python 3.7 更改为 python 3.8 时出错
- java - 在 onViewCreated 与 onCreate 中的 Fragment 中获取 ViewModel
- javascript - 将 React 元素传递给库
- arrays - 基于数组索引的字符串查询的Elasticsearch数组
- html - 页面加载到第二个域的框架中