2016-09-29 3 views
0

Ich habe ein einfaches Skript basiert weg PhantomJS der Network Monitoring example, die mit einer bestimmten Website zugeordnet ist, alle Anfragen und die Response-Header einzuloggen versucht:PhantomJS Laden nicht die korrekte URL innerhalb onResourceRequested

"use strict"; 

var page = require('webpage').create(), 
    system = require('system'), 
    address; 

if (system.args.length === 1) { 
    console.log('Usage: getRequests.js <some URL>'); 
    phantom.exit(1); 
} else { 

    address = system.args[1]; 

    console.log('The url entered is ' + address + '\n') 

    page.onResourceReceived = function(response) { 
     console.log('Received Request: ' + JSON.stringify(response.headers, undefined, 4) + '\n'); 
    }; 

    page.onResourceRequested = function (req) { 
     console.log('Request URL ' + JSON.stringify(req.url, undefined, 4) + "\n"); 

    } 

    page.onResourceError = function(resourceError) { 
     console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')'); 
     console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString); 
    }; 

    page.open(address); 


} 

Allerdings, wenn ich versuchen, sie auszuführen, mit ./phantomjs getRequests.js www.google.com (oder jeder anderen Webseite), gibt es den Fehler:

The url entered is www.google.com 

Request URL "file:///home/myusername/scripts/www.google.com" 

Unable to load resource (#1URL:file:///home/myusername/scripts/www.google.com) 
Error code: 203. Description: Error opening /home/myusername/scripts/www.google.com: No such file or directory 
Received Request: [] 

im Grunde, dass die url ich auf dem Terminal an Eingabe wird mit dem Pfad der Skriptdatei vorangestellt. Die Eingabe, die ich innerhalb der Adresse Variable bekomme, ist völlig in Ordnung, d. H. Google.com

Könnte jemand bitte mit diesem Problem helfen? Ich kann nicht verstehen, warum Phantomjs das vielleicht tun. Ich benutze Ubuntu 14.04 auf VirtualBox. Und das Skript lief schon gut, als ich gerade versuchte, die Anfragen für eine bestimmte Seite auszugeben. Danke.

Antwort

1

Sie werden wahrscheinlich lachen, aber der richtige Weg, um das Skript zu verwenden ist

./phantomjs getRequests.js http://www.google.com 
+0

Oh Gott, danke soviel !! Ich habe eine Stunde damit verbracht. – QPTR

Verwandte Themen