Aide sur une sort de crawler

jipe32 Messages postés 277 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 11 mai 2010 - 10 oct. 2008 à 14:51
Ordinastie Messages postés 93 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 - 11 oct. 2008 à 03:45
Bonjour à tous...
Je suis en train de me faire un crawler pour récupérer les liens des videos de Youtube pour me faire des listes...
J'arrive à récupérer les liens, mais j'ai plusieurs fois les mêmes...
Voici mon code:

<?php
set_time_limit(0); // Pas de limite de temps
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1'); //Simuler un navigateur
    $ch = curl_init();
    $timeout = 0; // Timeout cURL
    curl_setopt ($ch, CURLOPT_URL, "http://fr.youtube.com/results?search_query=Bob+Marley&search_type=&aq=f");//URL de la recherche
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
   
    curl_close($ch);

$motif='#[/watch?(.*?) #is';
preg_match_all($motif,$file_contents,$out);
$count=count($out[0]);
for($i=0;$i<$count;$i++)
{
$Lien = $out[0][$i];
echo htmlspecialchars($Lien),'
';
}
?>

Et voilà les résultats:
]
/watch_queue?all
/watch?v=Hd1CQEtrQMY
/watch_queue?all
/watch?v=rugUc3tgjYg
/watch_queue?all
/watch?v=fyppjUE9TxM
/watch_queue?all
...

Donc j'aimerais ne garder que "
".
J'ai essayé avec array_unique(); mais sans résultats.
Si vous pouviez m'aider, merci!!

1 réponse

Ordinastie Messages postés 93 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 17 octobre 2008 2
11 oct. 2008 à 03:45


Bonjour,La solution consiste à appeler array_unique sur un array ne contenant que les id des vidéos. Il faut donc que tu process ton array récupéré par le patern de ta regexp une première fois.Sinon, tu peux faire comme ça, ça devrait marcher aussi :preg_match_all('//', $file_contents, $regs);foreach($regs['id'] as$num => $id)   $videos[$id] = $regs['title'][$num];Ca devrait faire ce que tu souhaites.Ordinastie.

0
Rejoignez-nous