Comment puis-je configurer le proxy dans phantomjs

Ce https://www.npmjs.com/package/phantom#functionality-details page dit:

Vous pouvez également passer les commutateurs de ligne de commande pour le phantomjs processus en spécifier d'autres arguments pour fantôme.créer(), par exemple:

phantom.create '--load-images=no', '--local-to-remote-url-access=yes', (page) ->

ou en les précisant dans le options* objet:

phantom.create {parameters: {'load-images': 'no', 'local-to-remote-url-access': 'yes'}}, (page) ->

Ces exemples ne sont qu'à café de script et aussi ils insinuer que l'on crée une fonction peut prendre

create('string',function)

ou

create([object object],function)

mais vraiment le premier paramètre attendu est la fonction!

J'ai vraiment envie d'essayer http://phantomjs.org/api/command-line.html je pourrais avoir la mauvaise idée, mais pour moi, il semble qu'ils peuvent être utilisés dans la fonction create (à droite avant de faire le createPage), je me trompe?

J'ai essayé plusieurs choses, le plus logique est:

var phantom = require('phantom');
phantom.create(function(browser){
    browser.createPage(function(page){
        page.open('http://example.com/req.php', function() {

            });},{parameters:{'proxy':'98.239.198.83:21320'}});});

De sorte que la page est ouverte. Je le sais parce que je suis en train de req.php enregistrer la valeur de $_SERVER objet d'un txt pad, mais, le REMOTE_ADDR et REMOTE_PORT les en-têtes ne sont pas ceux dans la procuration que j'ai fixés. Ils n'ont aucun effet. J'ai aussi essayé:

{options:{'proxy':'98.239.198.83:21320'}}

Que les documents d'appel que l'objet de la options* objet *voir ci-dessus^

et

'--proxy=98.239.198.83:21320'

J'ai également eu un creuser à travers le fantôme module de trouver la fonction create. Il n'est pas écrit en js je ne peux pas le voir au moins. Il doit être en C++. Il semble que ce module a été mis à jour mais, les exemples de profondeur à l'intérieur du module de ressembler à un vieux code.

Comment puis-je faire cela?

EDIT:

var phantom = require('phantom');
phantom.create(function(browser){
    browser.createPage(function(page){

    browser.setProxy('98.239.198.83','21320','http', null, null, function(){

    page.open(
        'http://example.com/req.php', function() {

         });});});});

Ce qui ne produit pas d'erreur et la page est gratté mais le proxy est ignoré.

Les paramètres de Proxy sont définies lors de la création d'un processus, et non pas au cours de la page d'ouverture. Avez-vous vraiment essayé de passer la chaîne ou de l'objet en tant que premier paramètre phantom.create? Comment vérifiez-vous que le paramètre de proxy ne fonctionne pas?
passage de la chaîne en tant que premier paramètre de la page.créez donne une erreur (la fonction prévue), j'ai essayé comme vous le conseillé de la mettre sur le fantôme.créer à la place (essayé avant et après la fonction), aucune erreur, mais il n'a pas d'effet. Je ne suis pas considéré comme un proxy
Est-il un proxy socks5?
Je pense que c'est un proxy http à partir de us-proxy.org

OriginalL'auteur Ben Muircroft | 2015-02-17