Tôi có tập lệnh Phantomjs cố gắng mở url. phantomjs trả về lỗi này:Phantomjs không thể mở trang mà trình duyệt mở ra
Unable to load resource (request ID:undefinedURL:http://foo.bar/tree/nav_value/27)
Error code: 203. Description: Error downloading http://foo.bar/tree/nav_value/27 - server replied: Not Found
Nhưng khi tôi mở url http://foo.bar/tree/nav_value/27
với trình duyệt chrome, không có vấn đề và trang web được tải một cách chính xác!
Đây là kịch bản:
// Read the Phantom webpage '#intro' element text using jQuery and "includeJs"
"use strict";
var page = require('webpage').create();
var system = require('system');
if (system.args.length != 2) {
console.log("please pass 2 argument")
}
var company_id = system.args[1]
console.log("c", company_id)
page.onConsoleMessage = function(msg) {
console.log("message", msg);
};
page.onResourceError = function(resourceError) {
console.log('Unable to load resource (request ID:' + resourceError.id + 'URL:' + resourceError.url + ')');
console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};
page.onError = function(msg, trace) {
console.log("error", msg)
}
var nav_value;
page.open("http://foo.bar/tree/nav_value/27", 'post', 'username=navid&password=test', function(status) {
if (status === "success") {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(function() {
nav_value = parseInt($("#value").text());
});
phantom.exit(0);
});
} else {
phantom.exit(1);
}
});
EDIT:
Something lẻ xảy ra. Khi tôi chạy mã này với các phantomj trên các cửa sổ trên một máy khác, nó hoạt động. Nhưng trên Ubuntu nó trả về lỗi!
Url mà các phantomj đang cố gắng mở nằm trên cùng một máy chủ. (Ubuntu)
Sự cố là gì?
'Nhưng khi tôi mở url bằng chrome' - bạn có thực hiện yêu cầu GET với Chrome không? Lưu ý rằng bạn thực hiện một yêu cầu POST với PhantomJS. – Vaviloff
vâng tôi thực hiện yêu cầu GET. Liệu nó có làm cho một sự khác biệt? – Navid777
Tùy thuộc vào trang web mà nó có thể thực hiện. Hãy thử yêu cầu cùng một trang với yêu cầu GET trong PhantomJS ngay bây giờ vì mục đích thử nghiệm. Nếu trang vẫn không được tìm thấy ... có thể có lỗi đánh máy trong kịch bản không? Đáng tiếc là bạn không thể hiển thị URL của trang web, tôi có một vài giả thuyết khác về lý do lỗi này có thể xảy ra. – Vaviloff