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é.
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
Vous devez vous connecter pour publier un commentaire.
Comme pour les fantômes version 2.0.10 le code suivant fonctionne très bien dans ma machine windows
OriginalL'auteur Suben Saha
Ils n'ont pas de mise à jour de leurs documents.
http
est le réglage par défaut dans les docs sous--proxy-type
: phantomjs.org/api/command-line.htmlnœud-phantom .. les méthodes --proxy=192.168.1.42:8080 --proxy-type=[http|socks5|none] ont été combinés dans les paramètres, j'ai vu une longue discussion.
Qu'en est proxy auth params?
OriginalL'auteur Ben Muircroft
Comme un effet secondaire d'essayer de comprendre un question sur Github pour phantomjs-nodejs j'ai été en mesure de définir un proxy comme suit:
Le résultat où le proxy utilise Tor:
OriginalL'auteur DMfll
Temps est en cours, donc PhantomJS maintenant en mesure de configurer le proxy "à la volée" (même sur chaque page de base): voir à ce commit: https://github.com/ariya/phantomjs/commit/efd8dedfb574c15ddaac26ae72690fc2031e6749
Voici un exemple d'utilisation de la nouvelle setProxy fonction (je n'ai pas trouver la page web de configuration d'utilisation, c'est le général de l'utilisation de proxy sur instance de fantôme):
https://github.com/ariya/phantomjs/blob/master/examples/openurlwithproxy.js
Si vous souhaitez par-page proxy, utilisez l'URL complète pour proxy (schéma, le nom d'utilisateur,mot de passe, host, port - toutes l'URL)
OriginalL'auteur deksden
utiliser fantôme package npm et co package npm.
OriginalL'auteur qinggangxu
La CoffeeScript exemple est un peu étrange, parce que c'est la
browser
qui est passée dans le rappel dephantom.create
et paspage
, mais sinon, il doit être compatible à en juger par la code.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. Bien que PhantomJS contient un sans-papiers
phantom.setProxy()
fonction qui vous permet de modifier les paramètres de proxy dans le milieu du script. Le fantôme module semble aussi soutenir.Je viens de remarquer votre lien pointe vers phantomjs-nœud qui est différent de l'emballage.json de celui que j'ai> github.com/Medium/phantomjs
juste installé le un youve a obtenu, mais pas de changement, très étrange
Vous êtes à l'aide de la
phantom
mnp paquet de points pour le dépôt, j'ai été référencement. Lephantomjs
mnp paquet sur l'autre main est la réelle PhantomJS exécutable et pas le pont.Alors que dois-je utiliser, je suis très confus? phantom.setProxie('98.239.198.83','21320','http'); TypeError: Object #<Object> n'a pas de méthode 'setProxie'
OriginalL'auteur Artjom B.
Je suis en cours d'exécution PhantomJS à partir de windows cmd et syntaxes c'utilisation semble peu différent de ce que j'ai remarqué, si vous n'avez pas mis
http://
PJ l'habitude de reconnaître la valeur, c'est l'exemple completOriginalL'auteur Salem F
il fonctionne très bien sur mon windows.
OriginalL'auteur Ben Zhong