Javascript lire contenu page web
Fermé
ponpon
-
16 févr. 2006 à 10:20
erysoft
erysoft
- Messages postés
- 42
- Date d'inscription
- jeudi 9 avril 2009
- Statut
- Membre
- Dernière intervention
- 14 janvier 2012
A voir également:
- Javascript récupérer les données d'une page web
- Lire javascript - Meilleures réponses
- Récupérer le contenu d'une page web en javascript - Meilleures réponses
- N'arrive pas à acceder contenu page web ✓ - Forum - Internet / Réseaux sociaux
- Lire une page web hors ligne. ✓ - Forum - Logiciels
- Firefox : contenu page web noir (orange.fr) ✓ - Forum - Mozilla Firefox
- Un virus qui empeche de lire des pages web ✓ - Forum - Firewall
- Récupérer le contenu d'une page web en javascript ✓ - Forum - Javascript
11 réponses
erysoft
14 janv. 2012 à 11:41
- Messages postés
- 42
- Date d'inscription
- jeudi 9 avril 2009
- Statut
- Membre
- Dernière intervention
- 14 janvier 2012
14 janv. 2012 à 11:41
Salut,
Je suis tombé sur cet article par hasard, et utilisant ce procédés depuis pas mal de temps, je dois vous dire que cela ne fonctionne que SUR le même domaine, et non en crossdomain. Je ne vois pas l'intérêt d'aller lire le code de nos pages html, puisque nous les avons sur le PC ! Enfin, c'est vous qui voyez !
J'utilise la fonction javascript suivante :
Elle est identique à celle déjà proposée, mais je ne fais pas le contrôle de réception.
Pour ce qui est du cossdomain, il est impératif de passer par un proxy PHP, dont voici une exemple (xy.php) :
Pour avoir le code source de cette page, vous faites en javascript:
Vous pouvez essayer ceci :
http://www.erysoft.eu/php/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h
Dans ce cas, les balises sont opérationnelles. Mais si vous vous ajouter la conversion, vous aurez cela :
http://www.erysoft.eu/php/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h&con=1
Vous avez vu que la racine http:// ou https:// ne doit pas être présente dans l'adresse, car le serveur va déclarer une erreur. Si l''adresse que vous voulez lire est une fonction php, vous devez remplacer le ? d'origine par ||, et les & par |||.
Amusez-vous bien !
Je suis tombé sur cet article par hasard, et utilisant ce procédés depuis pas mal de temps, je dois vous dire que cela ne fonctionne que SUR le même domaine, et non en crossdomain. Je ne vois pas l'intérêt d'aller lire le code de nos pages html, puisque nous les avons sur le PC ! Enfin, c'est vous qui voyez !
J'utilise la fonction javascript suivante :
function eswd_charger_fichier(fichier, mode) { var requete = null; if (mode == undefined || mode == '') mode = false; if (window.XMLHttpRequest) requete = new XMLHttpRequest(); else if (window.ActiveXObject) requete = new ActiveXObject("Microsoft.XMLHTTP"); else return; requete.open('GET', fichier, mode); requete.send(null); return requete.responseText; }
Elle est identique à celle déjà proposée, mais je ne fais pas le contrôle de réception.
Pour ce qui est du cossdomain, il est impératif de passer par un proxy PHP, dont voici une exemple (xy.php) :
<?php $adresse = $_GET['adr']; $entete = $_GET['ent']; $conversion = $_GET['con']; $adresse = str_replace('||','?',$adresse); $adresse = str_replace('|||','&',$adresse); switch ($entete) { case 'h' : $adresse = 'http://' . $adresse; break; case 's' : $adresse = 'https://' . $adresse; break; default : break; } $session = curl_init($adresse); curl_setopt($session, CURLOPT_HEADER, false); curl_setopt($session, CURLOPT_RETURNTRANSFER, true); $reponse = curl_exec($session); curl_close($session); if ($conversion == '1' || strtolower($conversion == 'true')) { $special = array('<','>'); $caractere = array('<','>'); $reponse = str_replace($special,$caractere,$reponse); } header("Content-Type : text/xml"); echo $reponse; ?>
Pour avoir le code source de cette page, vous faites en javascript:
alert(eswd_charger_fichier('http://www.erysoft.eu/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h', false));
Vous pouvez essayer ceci :
http://www.erysoft.eu/php/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h
Dans ce cas, les balises sont opérationnelles. Mais si vous vous ajouter la conversion, vous aurez cela :
http://www.erysoft.eu/php/xy.php?adr=www.commentcamarche.net/forum/affich-2098793-javascript-lire-contenu-page-web&ent=h&con=1
Vous avez vu que la racine http:// ou https:// ne doit pas être présente dans l'adresse, car le serveur va déclarer une erreur. Si l''adresse que vous voulez lire est une fonction php, vous devez remplacer le ? d'origine par ||, et les & par |||.
Amusez-vous bien !
En fait c'est une page HLTM et je veux la parcourir avec un script pour récupérer une valeur la en l'occurence c'est un numéro de tel
Si je demande c'est que ca me serait tres utile pour mon prog lol
Mais bon si personne peut m'aider c'est pas grave google est mon ami le soir car la j'ai juste acces au site ccm
Mais bon si personne peut m'aider c'est pas grave google est mon ami le soir car la j'ai juste acces au site ccm
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
oui, je sais que c'est réalisable ... je l'ai vu fonctionner sur du php ... donc sa devrai etre realisable sur du javascript ... sinon il faut utiliser l'ajax.
je suis à la recherche de la même chose.
donc en quelque mots, moi se que je rechercher c'est de pouvoir mettre le contenu d'une page dans une variable, pour pouvoir la scanner indépendament et donc tirer la valeur souhaité
cordialement,
Jeremy
oui, je sais que c'est réalisable ... je l'ai vu fonctionner sur du php ... donc sa devrai etre realisable sur du javascript ... sinon il faut utiliser l'ajax.
je suis à la recherche de la même chose.
donc en quelque mots, moi se que je rechercher c'est de pouvoir mettre le contenu d'une page dans une variable, pour pouvoir la scanner indépendament et donc tirer la valeur souhaité
cordialement,
Jeremy
Bonjour,
apres reflexion, sachant que le javascript est un code client et non serveur. cela me parai difficielement realisable ...
cordialement,
apres reflexion, sachant que le javascript est un code client et non serveur. cela me parai difficielement realisable ...
cordialement,
guignols, mdr ^^
oula tu regardes des topic qui date de 2007 mon grand.
au lieux de faire des réflection à la mord moi le noeud
il aurait était plus intelligent de mettre une réponse.
personnellement à l'époque je donnais des suppositions,
"cela me parait"
enfin bref, mon pauvre garçon
à bonne entendeur salut
sinon pour répondre
utilise les fonctions :
pour recupérer la page web dans une variable utilise un objet
var xhr_object;
function creerobjet(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object[vlr].readyState == 4) return(xhr_object.responseText);
else return(false);
}
indexOf(char caratere recherché,int caraterededépart); pour rechercher la position d'un caratère dans ta page
substring(int debut,int fin); pour recupérer le mot voulut
exemple:
page=creerobjet("pageweb");
debutnumero=page.indexOf('06',0);
numero=page.substring(debutnumero-2,10);
alert(numero);
Cordialement,
oula tu regardes des topic qui date de 2007 mon grand.
au lieux de faire des réflection à la mord moi le noeud
il aurait était plus intelligent de mettre une réponse.
personnellement à l'époque je donnais des suppositions,
"cela me parait"
enfin bref, mon pauvre garçon
à bonne entendeur salut
sinon pour répondre
utilise les fonctions :
pour recupérer la page web dans une variable utilise un objet
var xhr_object;
function creerobjet(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object[vlr].readyState == 4) return(xhr_object.responseText);
else return(false);
}
indexOf(char caratere recherché,int caraterededépart); pour rechercher la position d'un caratère dans ta page
substring(int debut,int fin); pour recupérer le mot voulut
exemple:
page=creerobjet("pageweb");
debutnumero=page.indexOf('06',0);
numero=page.substring(debutnumero-2,10);
alert(numero);
Cordialement,
et encore 2 ans plus tard... une petite correction à ton bout de code!
Il faut supprimer l'utilisation de l'index de tableau sur l'objet xhr_object :
if(xhr_object[vlr].readyState == 4) return(xhr_object.responseText);
par :
if(xhr_object.readyState == 4) return(xhr_object.responseText);
Sinon bonne explication, ça fonctionne très bien! ^^
Il faut supprimer l'utilisation de l'index de tableau sur l'objet xhr_object :
if(xhr_object[vlr].readyState == 4) return(xhr_object.responseText);
par :
if(xhr_object.readyState == 4) return(xhr_object.responseText);
Sinon bonne explication, ça fonctionne très bien! ^^
Bonjour,
tien si cela peu t'aider mais ces du php
https://www.domsweb.org/ecolo/code-scripts.php
en javascript quelqu'un a une solution ??? merci d'avance ...
cordialement,
jeremy
tien si cela peu t'aider mais ces du php
https://www.domsweb.org/ecolo/code-scripts.php
en javascript quelqu'un a une solution ??? merci d'avance ...
cordialement,
jeremy
juni
16 févr. 2006 à 11:00
- Messages postés
- 78
- Date d'inscription
- samedi 3 janvier 2004
- Statut
- Membre
- Dernière intervention
- 16 février 2006
16 févr. 2006 à 11:00
Une page ne peut pas être entièrement en JS, le script est intégré à une page html. Donc tu fais affichage de la source et tu trouveras le script dedans.
juni
16 févr. 2006 à 11:25
- Messages postés
- 78
- Date d'inscription
- samedi 3 janvier 2004
- Statut
- Membre
- Dernière intervention
- 16 février 2006
16 févr. 2006 à 11:25
Ok j'avais pas compris :D
As-tu réellement besoin d'une procédure automatisée Ne peux-tu pas faire la recherche à la main ? Sinon désolé, je ne maitrise pas JS.
As-tu réellement besoin d'une procédure automatisée Ne peux-tu pas faire la recherche à la main ? Sinon désolé, je ne maitrise pas JS.
14 janv. 2012 à 12:48
Pour des raisons d'affichage il faut remplacer '<' par '& l t ;', et '>' par '& g t ;'
14 janv. 2012 à 13:26
$caractere = array('<','>');