1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

Problème avec PhantomJS

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 16 Février 2017.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Bonjour,

    j'ai un problème avec PhantomJS qui me bloque completement mon projet.

    Mon but : pouvoir faire une capture d'écran avec PhantomJS en passant par un proxy:

    En commande :
    Code:
    root@vps-21226:/var/www# phantomjs/bin/phantomjs --proxy=158.69.70.238:8080 phantomjs/examples/rasterize.js http://monsite.ws image.png
    TypeError: undefined is not an object (evaluating 'g.find("#ez-register-genderSel").get(0).tagName')
    
      http://monsite.ws/js/js_register.js:5 in updateForm
      http://monsite.ws/js/js_register.js:5
      http://monsite.ws/js/js_register.js:1 in l
      http://monsite.ws/js/js_register.js:1 in fireWith
      http://monsite.ws/js/js_register.js:1 in ready
      http://monsite.ws/js/js_register.js:1 in va
    Ceci fonctionne parfaitement, et la capture d'écran est éxecuté avec le proxy : 158.69.70.238:8080

    Par contre si j'utilise cette fois une page php avec le code suivant pour faire la meme chose, la ligne de commande "--proxy=158.69.70.238:8080" ne fonctionne pas et la capture est executé sans le proxy.

    Je ne sais absolument pas quoi faire .

    La page php :

    Code:
    <?php
    
      $exec = 'phantomjs/bin/phantomjs --proxy=158.69.70.238:8080 --debug=true phantomjs/examples/rasterize.js http://monsite.ws image.png'; 
    
    ?> 
    Page resterize.js :

    Code:
    "use strict";
    var page = require('webpage').create(),
        system = require('system'),
        address, output, size;
    
    	page.settings.userAgent = 'Opera/9.80 (Android 2.2.2; Linux; Opera Tablet/ADR-1111101157; U; en) Presto/2.9.201 Version/11.50';
    
       
    	var settings = {
      headers: {
       "Referer": "http://lycos.fr"
      }
      
      
    };	
    	
    if (system.args.length < 3 || system.args.length > 5) {
        console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]');
        console.log('  paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"');
        console.log('  image (png/jpg output) examples: "1920px" entire page, window width 1920px');
        console.log('                                   "800px*600px" window, clipped to 800x600');
        phantom.exit(1);
    } else {
        address = system.args[1];
        output = system.args[2];
        page.viewportSize = { width: 600, height: 600 };
        if (system.args.length > 3 && system.args[2].substr(-4) === ".pdf") {
            size = system.args[3].split('*');
            page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' }
                                               : { format: system.args[3], orientation: 'portrait', margin: '1cm' };
        } else if (system.args.length > 3 && system.args[3].substr(-2) === "px") {
            size = system.args[3].split('*');
            if (size.length === 2) {
                pageWidth = parseInt(size[0], 10);
                pageHeight = parseInt(size[1], 10);
                page.viewportSize = { width: pageWidth, height: pageHeight };
                page.clipRect = { top: 0, left: 0, width: pageWidth, height: pageHeight };
            } else {
                console.log("size:", system.args[3]);
                pageWidth = parseInt(system.args[3], 10);
                pageHeight = parseInt(pageWidth * 3/4, 10); // it's as good an assumption as any
                console.log ("pageHeight:",pageHeight);
                page.viewportSize = { width: pageWidth, height: pageHeight };
            }
        }
        if (system.args.length > 4) {
            page.zoomFactor = system.args[4];
        }
    
    	
    	
        page.open(address, settings, function (status) {
            if (status !== 'success') {
                console.log('Unable to load the address!');
                phantom.exit(1);
            } else {
                window.setTimeout(function () {
                    page.render(output);
                    phantom.exit();
                }, 200);
            }
        });
    }
    
    Je vous remercie d'avance pour votre aide
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 056
    J'aime reçus:
    294
    Tu as regardé ce que tu trouves dans &$output et &$return_var de exec() ?
     
  3. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Le problème est désormais résolu :) Vérifiez bien le nom des fichiers que vous appelez avec votre exec, mon erreur était la. Merci Spout
     
Chargement...
Similar Threads - Problème PhantomJS Forum Date
Search Console Probleme redirection nom de domaine et indexation google Crawl et indexation Google, sitemaps 16 Septembre 2020
Problème passerelle sur Prestashop e-commerce 8 Septembre 2020
Problème indexation Google desktop/mobile Problèmes de référencement spécifiques à vos sites 3 Septembre 2020
Search Console Problèmes chargements images Crawl et indexation Google, sitemaps 3 Septembre 2020
Problème de position sur 1 mot-clé (effet yo-yo) Problèmes de référencement spécifiques à vos sites 21 Août 2020
WordPress Problème Filtre Demandes d'avis et de conseils sur vos sites 15 Août 2020
Problème déploiement nouvelle version app sur Android Développement d'un site Web ou d'une appli mobile 5 Août 2020
Problème organisation Array Développement d'un site Web ou d'une appli mobile 4 Août 2020
Problème migration site vistaprint vers wordpress.com Débuter en référencement 3 Juillet 2020
Problème e-commerce sur GA/GTM Google Analytics 18 Juin 2020