- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我正在尝试在 ESPN 梦幻足球的 HTML 精简版选秀页面中编写一个 Hook ,以交叉引用球员排名列表(来自 CSV 文件),以从可用池中消除已经选秀的球员。我过去曾手动完成此操作:但是在最后几轮有 16 支球队选秀,几乎不可能跟上,因为到那时没有人真正知道球员是谁。
我是一个 Javascript 和 PhantomJS 新手,所以请不要笑。
此时,当 AJAX 轮询 PhantomJS 实例时,我可以在我的控制台中看到 page.onResourceReceived 元数据。但我不知道如何访问“浏览器”实际接收到的数据。根据 Chrome 的检查员的说法,网络检查器选项卡下的“预览”选项卡——时间同步信号或被选中的实际玩家的数据正在以 JSON 格式发送到浏览器。
长话短说,当我收到 page.onResourceReceived 元数据时,如何获取实际的 JSON 数据?
(附:我知道我注释掉了 phantom.exit();这是为了防止脚本在重定向和 onLoad 完成后终止——我需要让它继续运行以监听草稿更新)
var draft = 'http://games.espn.go.com/ffl/htmldraft?leagueId=1246633&teamId=8&fromTeamId=8';
var draftURL = encodeURIComponent(draft);
var page = require('webpage').create(),
server = 'https://r.espn.go.com/espn/memberservices/pc/login',
data = 'SUBMIT=1&failedLocation=&aff_code=espn_fantgames&appRedirect=' + draftURL + '&cookieDomain=.go.com&multipleDomains=true&username=[redacted]&password=[redacted]&submit=Sign+In';
page.onResourceReceived = function (response) {
console.log('Response (#' + response.id + ', stage "' + response.stage + '"): ' + JSON.stringify(response));
};
page.open(server, 'post', data, function (status) {
if (status !== 'success') {
console.log('Unable to post!');
} else {
page.render('example.png');
//console.log(page.content)
}
//phantom.exit();
});
最佳答案
您的脚本的以下版本将只抓取并返回您正在访问的 URL 的全部内容。你不会真的得到有用的 json 数据,我不认为,只是一个 html 页面,除非我遗漏了什么。在我的测试中,我得到的只是 html:
var draft = 'http://games.espn.go.com/ffl/htmldraft?leagueId=1246633&teamId=8&fromTeamId=8';
var draftURL = encodeURIComponent(draft);
var page = require('webpage').create(),
server = 'https://r.espn.go.com/espn/memberservices/pc/login',
data = 'SUBMIT=1&failedLocation=&aff_code=espn_fantgames&appRedirect=' + draftURL + '&cookieDomain=.go.com&multipleDomains=true&username=[redacted]&password=[redacted]&submit=Sign+In';
page.open(server, 'post', data, function (status) {
if (status == 'success') {
var delay, checker = (function() {
var html = page.evaluate(function () {
var body = document.getElementsByTagName('body')[0];
return document.getElementsByTagName('html')[0].outerHTML;
});
if (html) {
clearTimeout(delay);
console.log(html);
phantom.exit();
}
});
delay = setInterval(checker, 100);
}
else {
phantom.exit();
}
});
关于javascript - 在触发 PhantomJS onResourceReceived 时访问 JSON 数据(ESPN 梦幻足球选秀应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18499512/
我正在尝试使用 phantomjs 来获取有关竞争条件影响页面的可能性的一些指标,我有 2 个脚本文件,我网站上托管的某些功能取决于来自第三方的文件设置的某些全局变量派对。 我认为在 phantomj
我最近发现我无法使用 PhantomJS 读取 ajax 请求的响应主体。调查这个问题,似乎这已经被踢了很长一段时间,没有完全解决。我想知道 PhantomJS 项目是否出于某种原因(可能与资源相关)
假设我有一个像这样的 phantomJS 脚本: var page = require('webpage').create() page.onResourceRequested = function
因此,我正在尝试在 ESPN 梦幻足球的 HTML 精简版选秀页面中编写一个 Hook ,以交叉引用球员排名列表(来自 CSV 文件),以从可用池中消除已经选秀的球员。我过去曾手动完成此操作:但是在最
我是一名优秀的程序员,十分优秀!