begin process at 2012 02 15 14:07:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Aide sur une sort de crawler


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Aide sur une sort de crawler

vendredi 10 octobre 2008 à 14:51:30 | Aide sur une sort de crawler

jipe32

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='#<a href="/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),'<br/>';
}
?>


Et voilà les résultats:
<a href="/watch?v=Hd1CQEtrQMY" >
<a href="/watch_queue?all">
<a href="/watch?v=Hd1CQEtrQMY" title="Bob Marley - Forever Loving Jah">
<a href="/watch?v=Hd1CQEtrQMY" title="Bob Marley - Forever Loving Jah">
<a href="/watch?v=rugUc3tgjYg" >
<a href="/watch_queue?all">
<a href="/watch?v=rugUc3tgjYg" title="bob marley bad boys musique de inner circle">
<a href="/watch?v=rugUc3tgjYg" title="bob marley bad boys musique de inner circle">
<a href="/watch?v=fyppjUE9TxM" >
<a href="/watch_queue?all">
<a href="/watch?v=fyppjUE9TxM" title="Mort de Bob Marley - Journal du 12 Mai 1981">
<a href="/watch?v=fyppjUE9TxM" title="Mort de Bob Marley - Journal du 12 Mai 1981">
<a href="/watch?v=UyyAf45bCRE" >
<a href="/watch_queue?all">
<a href="/watch?v=UyyAf45bCRE" title="Bob Marley - Is This Love">
<a href="/watch?v=UyyAf45bCRE" title="Bob Marley - Is This Love">
...

Donc j'aimerais ne garder que "<a href="/watch?v=UyyAf45bCRE" title="Bob Marley - Is This Love">".
J'ai essayé avec array_unique(); mais sans résultats.
Si vous pouviez m'aider, merci!!
samedi 11 octobre 2008 à 03:45:54 | Re : Aide sur une sort de crawler

Ordinastie

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('/<a href="\/watch\?v=(?<id>.*?)" title="(?<title>.*?)">/', $file_contents, $regs);
foreach($regs['id'] as$num => $id)
   $videos[$id] = $regs['title'][$num];

Ca devrait faire ce que tu souhaites.

Ordinastie.



Cette discussion est classée dans : crawler, curl, timeout, setopt, curlopt


Répondre à ce message

Sujets en rapport avec ce message

Headers (fct CURL) [ par malik7934 ] Hello,Depuis quelques temps, je bricole avec les fonctions CURL et j'adore  mais j'ai un probleme Je cherche a recupere les heades que j'envoie quand probleme curl [ par coolman9999 ] bonjour, ayant chercher longtemps a resoudre mon probleme sans succés, je me tourne vers vous en esperant le resoudre :D voila, jaimerais creer un pe cURL + PHP [ par bandifull ] Bonsoir à tous,J'aimerai utiliser cURL pour recuperer le code source d'un site.Je dois etre logué (une variable de session est alors créée).Jusque la Curl Connection a http://login.live.com/ [ par rocky42 ] Bonjour tout le mondes ^^ Voila j'aimerai essayer de me connecter a un compte hotmail via php Pour se faire jais eux l'idée d'utiliser le curl sur Curl Connection a http://login.live.com/ [ par rocky42 ] Bonjour tout le mondes ^^ Voila j'aimerai essayer de me connecter a un compte hotmail via php Pour se faire jais eux l'idée d'utiliser le curl sur l Pré-remplir un formulaire sur un site extérieur [ par ICIoBRa ] Salut à tous, je cherche à atterrir sur une page d'un site contenant un formulaire, avec le formulaire du site déjà rempli. J'utilise Google chrome. J Boucle infinie avec curl_setopt et SSL!!! [ par malik7934 ] Hello, J'ai un problème agaçant avec curl_setopt (je débute dans le domaine). J'essaie de me connecter à un site avec SSL. Voici le tout début de mon Connaitre le content-type d'une page [ par BlackWizzard ] Hello,Je cherche depuis plusieurs heures un moyen de connaitre le content-type d'une page (pas celui de la page en cours, une page externe dont l'url cURL et formulaire avec chekbox multiples [ par simonechoulle ] bonjour,je me sers de curl pour l'execution d'un formulaire, hors j'ai un problème avec les checkboxes multiples : la requete post dans le curl ne me


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales