Soucis sur des flux rss me donnant des pages en 404!


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Soucis sur des flux rss me donnant des pages en 404!

Message le Dim Nov 16, 2008 12:10

Bonjour,

Je viens de m'apercevoir dans "Outils pour les webmasters de GG" que j'avais un nombre impressionnant d'url introuvable sur mon site et ceci étant dut aux flux rss que j'indexe et qui comporte des erreurs dans leurs url ...

J'utilise le log. magpierss pour l'affichage des flux rss et je ne sais si il y a possibilité de "bloqué" ou autre , les url pourris qui me cause des 404 en pagaille ..

Si vous avez des idées, je suis preneur :).
Merki


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Message le Lun Nov 17, 2008 13:19

Bonjour,

Pour ma part j'utilise simpleXML pour la lecteure de flux RSS. Avant de charger / interroger un flux je regarde si il est disponible . Pour cela j'utilise la librairie CURL et la notion de TIMEOUT.

@+


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Re: Soucis sur des flux rss me donnant des pages en 404!

Message le Lun Nov 17, 2008 14:27

tryan a écrit:Si vous avez des idées, je suis preneur :).


t'envoie un ptit lutin :)

ou tu passes par les fonctions curl, ptit snipt ici

test [http_code], si il est a 200 c'est que la page que tu tire du flux est en ligne.

Pour ce faire, la premiere solution est de stoker ton flux en base au préalable pour le tester avant de le publier. cette solution permet aussi de faire une mise en cache.

L'autre solution plus rapide mais couteuse en ressources serveur est de ne stocker que les urls pourris en base avec un script externe et de faire une recherche avec in_array dans la base avant de publier chaque url.


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Message le Lun Nov 17, 2008 19:01

Autre méthode :
Code: Tout sélectionner
 
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_USERAGENT, "PHP script");
  curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  $page    = curl_exec($ch);
  $CurlErr = curl_error($ch);
  curl_close($ch);
  if ($CurlErr) return null;  // on peut gérer le type d'erreur
  $LecteurRSS = simplexml_load_file($url);
......


Avec $url, L'URL du flux RSS et $timeout Nbre de secondes du timeout.

Exemple de mise en oeuvre : Météo Département de l'Eure

Et je suis en train voir pour effectivement mettre le flux en cache.
Ainsi je minimise les ressources serveur en interrogeant le serveur de flux RSS que toutes les 30 minutes par exemple.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Lun Nov 17, 2008 19:30

euhh.. tyran parle pas de l'url du flux mais des urls que comportent les flux si j'ai bien compris


cnhx
WRInaute discret
WRInaute discret
 
Messages: 85
Inscription: 27 Avr 2008

Message le Mar Nov 18, 2008 6:34

Tu as raison KOogar. :wink: Ta méthode est donc plus adapté. 8)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Feed Fetcher, FeedBurner, Google Reader, Google ReadAir



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités