11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour

un même nom de librarie existe coté client /serveur et pour plusieurs language .
Vous ne précisez pas si cela doit fonctionner coté desktop ou serveur ou client web et si temps réel (dynamique) on non ( click souris lancer tout ça ) . " Le plus simple" ......


coté client : c'est impossible si vous êtes pas dans le même domaine . il faut le faire coté serveur . regarder du coté de json p sur wikipedia.Je me demande si implémenter un second navigateur dans un navigateur permet de faire cela . sinon Excel ou un éditeur HTML avec possibilité de programmation , d import .


coté desktop : python ( python x,y avec spyder IDE) est vraiment bien même si nodejs ( bracket IDE) permet maintenant d'être utilisé coté client et serveur .

coté serveur : pour le code php si vous utilisez un CMS voyez du coté des extensions RSS. Le plus simple serait qu il existe un service REST pour les données que vous voulez manipuler mais cela doit être mis en place coté serveur sur le site 1/3.
L 'autre moyen serait un script/application local ( desktop ou serveur) qui se connecte à la page et met à jour un fichier localement sur le serveur ( si desktop il faut automatisé la connexion au serveur ftp ) à partir de la page 1/3. Sur votre page il peut y avoir alors un script ajax . le lcient de votre site demande un ressource sur votre serveur en utilisant ajax , le serveur se connecte sur l autre serveur et retourne le fichier , le traite et le renvoie par ajax a vos clients qui en font la demande. Le log du serveur 1/3 va s 'apercevoir d'un nombre de requête anormalement élevée provenant d une ip ! ( changer le user agent ....dynamiquement )

cordialement
Modifié par 75lionel (01 Feb 2015 - 18:21)
Merci de ta réponse.
je parse avec php simple dom html parser depuis un serveur lamp.

coté serveur pas possible donc puisque le site que je parse n'est pas sur mon serveur...

coté desktop c'est à dire ?

côté client j me demandais. avec firebug ou l'inspecteur de firefox, le code html s'affiche entierement. j'ai cherché en vain, existe t il un moyer depuis un script js ou php d'utiliser une extension firefox ou chrome et de récupérer comme ça le code ?

merci
Bonjour,
Je rencontre le même problème et la seule solution que je vois, c'est de scruter le javascript de façon à récupérer l'url de la requête ajax, puis de parser ce 2ème résultat.
Mais on tombe souvent sur des codes js de milliers de lignes à la syntaxe obscure, et ce n'est pas toujours évident...

Si quelqu'un connaît une bonne méthode, je suis aussi preneur.

Stéphane
Bonjour, la façon la plus simple que je connaisse pour parser une page après rendu du navigateur est d'utiliser un "émulateur" de navigateur que l'on peut scripter pour lui faire aller récupérer des infos sur la page une fois rendue.

PhantomJS fait ça trés bien :

var PAGE_URL = 'http://www.betexplorer.com/soccer/france/ligue-1/matchdetails.php?matchid=ralzYFhO',
	page = require('webpage').create();

page.open(PAGE_URL, function (status) {
    if (status !== 'success') {
        console.log('Unable to access network');
    } else {    	
    	var firstOdd = page.evaluate(function () {
           	return jQuery('.course:first').text();
        });        
        
      	console.log(firstOdd);   // ça m'affiche 3.40 !
    }
    phantom.exit();
});


Avec ce simple bout de code je vais chercher la première côte du tableau Smiley cligne

Explications :
J'ouvre la page avec PhantomJS puis j'évalue directement du JS comme si j'étais dans la console javascript de mon navigateur ouvert. Je sais que jQuery est inclus par la page, du coup je l'utilise pour aller récupérer du texte dans un élément que j'ai repéré.

Le script peut être modifié pour aller boucler dans toute la page, remplir un tableau d'objets, puis le sérialiser en JSON et ainsi le déserialiser avec un bon vieux json_decode en PHP.
Modifié par Freez (05 Feb 2015 - 12:02)
Desktops signifie que vous executer le logiciel sur le système d exploitation que vous utiliser localement . Le logiciel n est pas un serveur http mais une application utilisant un protocole http . Le mot logiciel englobe les mots CLI GUI framework library .

le serveur 1/3 est le serveur qui possèdent les données qui ne sont pas partagé accessible selon un protocole jsonp ( accord explicite ) ou RSS (pas d accord,public) .

@freez , pouvez vous confirmer que phantomjs est un émulateur( remplace geste d'un humain ..pas OS ) coté desktop ? fonctionne t il sur nodejs on v8 ? ou directement sur V8 ?. Existe t il une version Browserify ? est il utilisable avec le code généré par selenium ?



@hisa votre choix technique est javascript coté client avec ajax
Pour le client (user agent qui se connecte sur votre serveur pas le serveur 1/3) ; iI semble qu il existe une solution basé sur jquery , et yahoo console yql .
voyez sur http://tinyurl.com/yay9lq2



j ai supprimer tout mon message ( server php , librairie js ) en respectant la question le sujet de départ. NB mélanger php et javascript coté client firefox ....... Aieh aieh aieh !!
Tout demande des connaissances .

Cordialement
Modifié par 75lionel (05 Feb 2015 - 15:42)
@75lionel PhantomJS n'est pas côté desktop : c'est un executable et on l'utilise en ligne de commande. Il peut facilement être exécuté depuis un serveur de manière automatique (ce n'est pas une lib nodejs, même si on écrit les instructions en js).
Il utilise le moteur de rendu Webkit (il génère réellement les pages et on peut lancer des rendus), et le moteur javascript n'est pas V8 mais JavascriptCore : le moteur js initial de webkit.
Modifié par Freez (05 Feb 2015 - 13:33)
@freez

Merci pour votre réponse technique ( ok pour moi ) . Phantomjs est donc utilisable server ( type "cgi" !? ) et desktop. Dans le domaine "web Hosting" ( ovh , 1 &1 ....) ; qui propose des solutions server pour faire fonctionner phantomjs ? ( google app engine ? azure ? .... )

Merci
Modifié par 75lionel (05 Feb 2015 - 13:48)
@75lionel ça c'est encore une autre histoire, ça dépend de ce que permet le serveur, en tout cas possible sur un dédié, sur votre ordinateur, sur un raspberry pi. Pour le reste il faut évidemment chercher mais si vous faites une application de pari sportif il vaudra mieux investir sur un serveur dédié Smiley cligne
merci de vos reponse
j viens d'essayer phantom et ça ne marche pas
je suis sous windows xp sp3
j'ai dezippé, mis le path et quand je le lance j'ai un beau "phantom n'est pas une application win32 valide"
une idée ?
Quelle version de PhantomJS avez vous téléchargé ? Et quelle commande avez vous lancé ?
phantomjs-2.0.0-windows.zip sur le site officiel
Modifié par hisa (14 Feb 2015 - 05:09)
oups je l'exécutais dans la console windows

j'ai créé un script test.js avec ce code
console.log('Hello, world!');
phantom.exit();


j vais dans la console firefox et voila ce que j'ai
phantomjs test.js
SyntaxError: missing ; before statement
phantomjs-h
ReferenceError: phantomjs is not defined
phantomjs -h
ReferenceError: phantomjs is not defined