我有一个PhantomJS脚本,当我在本地运行它时(Mac),但是当我在Linux服务器上运行它时,它会返回以下错误:
ReferenceError: Can't find variable: $
https://fantasy.premierleague.com/a/statistics/value_form:5712 in global code
代码是:
var page = require('webpage').create();
var fs = require('fs');
var args = require('system').args;
page.settings.userAgent = 'SpecialAgent';
page.open('https://fantasy.premierleague.com/a/statistics/value_form', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var ua = page.evaluate(function () {
var result ="";
// ...
return result;
});
}
phantom.exit();
});
答案 0 :(得分:2)
您的代码和页面上加载的jQuery之间可能存在竞争条件。使用page.evaluate
包含$(document).ready(function() { /* your statements here */ });
回调中的语句,以确保页面上的脚本已完全加载。
答案 1 :(得分:-4)
我不打算upvote。 我正在提供解决方案来解决某些情况而不用使用phantomjs模拟浏览器行为只是为了检索可以通过请求url直接处理的数据。
您需要页面中的数据,为什么不直接请求此网址:https://fantasy.premierleague.com/drf/bootstrap-static
var request = require('request'); // install: npm i request
var fs = require('fs');
var args = require('system').args;
request.get({url: 'https://fantasy.premierleague.com/drf/bootstrap-static'}, function(err, response, body) {
console.log(body);
});
我是如何找到这个网址的?
简单: