intégrer une page web dans une autre
intégrer une page web dans une autre
Bonjour,
je suis en train de créer un petit projet qu'on peut qualifier de net-art.
En voici le premier essai : http://alexandreleray.com/_trucs/navigateur.php
Le principe :
visualiser uniquement les hyperliens d'une page, dont la taille serait proportionelle au pagerank google. Je vous laisse méditer à propos du principe de popularité... Ma question est comment inclure une page en http en n'intégrant que le contenu du <body> pour éviter les doublons de tags ?
Merci.
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
je suis en train de créer un petit projet qu'on peut qualifier de net-art.
En voici le premier essai : http://alexandreleray.com/_trucs/navigateur.php
Le principe :
visualiser uniquement les hyperliens d'une page, dont la taille serait proportionelle au pagerank google. Je vous laisse méditer à propos du principe de popularité... Ma question est comment inclure une page en http en n'intégrant que le contenu du <body> pour éviter les doublons de tags ?
Merci.
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
peut tu m'en dire un peu plus sur "ouvrir comme un fichier" ? Dans ma tête j'imaginais stocker la page dans une variable puis exploerer les noeuds. Mais je ne sais pas comment faire...
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Oui je parlais bien de charger le contenu de la page dans une variable, mais en PHP ça se fait de la même façon que ce soit un fichier local ou une page Web distante, avec la fonction fopen.
Je te déconseille tout à fait d'explorer les nœuds, parce que ça veut dire reconstruire tout l'arbre DOM et c'est très lent. Il suffit de traiter la page comme du texte et les fonctions de manipulation de chaînes.
En gros, tu pourrais utiliser strpos pour trouver l'emplacement de "<body", puis le ">" suivant (au cas où il y a des attributs sur la balise). Même chose pour trouver "</body>".
Ensuite, tu utilises substr sur la page complète avec les positions que tu as trouvées (plus ou moins 1) et tu fais un echo du résultat.
Je te déconseille tout à fait d'explorer les nœuds, parce que ça veut dire reconstruire tout l'arbre DOM et c'est très lent. Il suffit de traiter la page comme du texte et les fonctions de manipulation de chaînes.
En gros, tu pourrais utiliser strpos pour trouver l'emplacement de "<body", puis le ">" suivant (au cas où il y a des attributs sur la balise). Même chose pour trouver "</body>".
Ensuite, tu utilises substr sur la page complète avec les positions que tu as trouvées (plus ou moins 1) et tu fais un echo du résultat.
♫ Li tens s'en veit, je n'ai riens fais ;
Li tens revient, je ne fais riens. ♪
Li tens revient, je ne fais riens. ♪
Je cherche maintenant à connaître le pagerank des liens de la page scannée, et là ça se corse. J'ai trouvé cette page qui en parle : http://www.zorgloob.com/2004/06/comment ... google.asp
et en suivant les lien de petits script qui permettent de récupérer le cheksum, mais en fait je n'arrive pas à récupérer le pagerank, google me donne un message d'erreur me disant que je n'ai pas la permission (mauvais cheksum). Quelqu'un aurait'il des infos la dessus ? Merci
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
et en suivant les lien de petits script qui permettent de récupérer le cheksum, mais en fait je n'arrive pas à récupérer le pagerank, google me donne un message d'erreur me disant que je n'ai pas la permission (mauvais cheksum). Quelqu'un aurait'il des infos la dessus ? Merci
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Voilà, j'ai réussi à connaître le pagerank d'une page à l'aide de ce script : http://www.phpcs.com/codes/GOOGLE-PAGER ... 40649.aspx
J'aimerais désormais pouvoir rechercher tous les liens d'une page et leur donner une taille en fonction du pagerank par exemple
et le transformer en :
si on considère que le pagerank de google.fr qui est de 9 correspond à 4*9 = 36 (c'est arbitraire)
Je suis déjà pas très fort en php, mais les expressions régulières... enfin bon ça m'amuse c'est déjà ça
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
J'aimerais désormais pouvoir rechercher tous les liens d'une page et leur donner une taille en fonction du pagerank par exemple
Code : Tout sélectionner
<a href="http://www.google.fr/">lien vers google</a>
Code : Tout sélectionner
<a href="http://www.google.fr/" style="font-size:36px">lien vers google</a>
Je suis déjà pas très fort en php, mais les expressions régulières... enfin bon ça m'amuse c'est déjà ça

Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Je viens de voir qu'il existait des fonctions de navigation dans le dom en PHP. Un setattribute sur les liens pourrait t'il marcher, ou ne s'agit il que de fonctrions pour des documents xml ?
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Réussirais-tu à trouver le fameux motif ? Même si je comprends le principe, j'en suis incapable.
sinon pour l'histoire du dom j'ai fait ça hier :
Ca marche en théorie sauf que j'ai bidouillé deux morceaux de code : une qui ne passe qu'en php4 (la class GooglePR, pourtant certifiée php5) et l'autre qu'en php5 (la partie avec le dom). Mais même si j'y arrive pour cet exemple simple je doute pouvoir aller plus loin autrement que par regexp.
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
sinon pour l'histoire du dom j'ai fait ça hier :
Code : Tout sélectionner
<?php
class GooglePR
{
function ZeroFill($a, $b)
{
$z = hexdec(80000000);
if ($z & $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return $a;
}
function mix($a,$b,$c)
{
$a -= $b; $a -= $c; $a ^= ($this->ZeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= ($this->ZeroFill($b,13));
$a -= $b; $a -= $c; $a ^= ($this->ZeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= ($this->ZeroFill($b,5));
$a -= $b; $a -= $c; $a ^= ($this->ZeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= ($this->ZeroFill($b,15));
return array($a,$b,$c);
}
function CheckSum($url)
{
$a = $b = 0x9E3779B9;
$c = 0xE6359A60; // Init
$k = 0;
$length = sizeof($url);
$len = $length;
while($len >= 12)
{
$a += ($url[$k+0]+($url[$k+1]<<8)+($url[$k+2]<<16)+($url[$k+3]<<24));
$b += ($url[$k+4]+($url[$k+5]<<8)+($url[$k+6]<<16)+($url[$k+7]<<24));
$c += ($url[$k+8]+($url[$k+9]<<8)+($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = $this->mix($a,$b,$c);
$a = $mix[0];
$b = $mix[1];
$c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len)
{
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);
}
$mix = $this->mix($a,$b,$c);
return '6'.$mix[2];
}
function strord($string)
{
$length = strlen($string);
$i = 0;
$result = array();
while( $i < $length )
{
$result[$i] = ord($string{$i});
$i++;
}
return $result;
}
function PageRank($url)
{
$checksum = $this->CheckSum($this->strord('info:'.$url));
$file = file('http://www.google.com/search?client=navclient-auto&ch='.$checksum.'&ie=UTF-8&oe=UTF-8&features=Rank&q=info:'.urlencode($url));
$file = implode("", $file);
return substr($file,strrpos($file, ":")+1);
}
function BackLinks($url)
{
$checksum = $this->CheckSum($this->strord('link:'.$url));
$file = file('http://www.google.com/search?client=navclient-auto&ch='.$checksum.'&ie=UTF-8&oe=UTF-8&features=Matches&q=link:'.urlencode($url));
$file = implode("", $file);
return substr($file,strrpos($file, ":")+1);
}
}
$dom = new DOMDocument();
$dom->loadHTMLFile('liens.html');//une page très simple avec deux liens
$listeLiens = $dom->getElementsByTagName("a");
foreach($listeLiens as $lien) {
if ($lien->hasAttribute("href")) {
$url = $lien->getAttribute("href");
$PR = new GooglePR();
$lien->setAttribute("style", $PR->PageRank($url));//l'exemple est mauvais mais l'idée est de ressortir un truc du style 'font-size:pagerank"
}
}
echo $dom->saveHTML();
?>
Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2 (MultiLang)
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités