begin process at 2012 05 30 21:43:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Réseau & Internet

 > 

Sockets

 > 

fsockopen et boucle


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

fsockopen et boucle

mercredi 2 avril 2008 à 14:44:42 | fsockopen et boucle

NewSky

Bonjour,
Le problème que j'ai est peut être du à une mauvaise utilisation de fsockopen().
En fait, dans le but de créer un simple crawler web, j'utilise fsockopen pour me connecter à un site et ainsi récupérer tous les liens internes en récupérant les pages une par une.
J'ai une méthode qui fonctionne :
j'ouvre une connexion avec fsockopen pour chaque page (envoie des en-têtes, récupération des données, traitement, ...)

Je me disais qu'il était possible d'augmenter la rapidité du crawl en n'ouvrant qu'une seule connexion et de gérer l'appelle des page ensuite avec les en-têtes. Mais là, problème :
En effet, la récupération des données ne fonctionne que pour la première page. Mon crawl continue sur les liens récupérés sur cette 1ère page, mais aucune données n'est récupérées. J'ai donc vérifier ( avec stream_get_meta_data() ), et effectivement, lors du 1er passage, eof passe à TRUE (logique me direz-vous). Du coup, lorsque je veux récupérer les autres données, c'est impossible!
Le fait de renvoyer de nouvelles en-têtes ne ré-initialise pas l'état de la ressource. Il est aussi impossible d'utiliser rewind() ou autre fseek() avec fsockopen.
Existe-t-il une autre façon de procéder d'après vous, ou seule ma 1ère utilisation est la bonne?
Merci d'avance

 

mercredi 2 avril 2008 à 15:00:07 | Re : fsockopen et boucle

neigedhiver

Réponse acceptée !
Salut,

Je pense que c'est la meilleure façon de faire... Je ferais pas mieux, quoi.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mercredi 2 avril 2008 à 15:56:59 | Re : fsockopen et boucle

yoman64

Membre Club
Salut,

(Ce message ne t'apportas rien à ton problème puisque je sais que si neigedhiver dit que c'est bien, alors c'est forcément vrai :P)

Donc je voulais savoir, par simple curiosité, à quoi ton crawler sert-il ? J'essais d'imaginer l'application d'un tel script mais je ne trouve rien de concret, si ce n'est que pour apprendre ?

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
mercredi 2 avril 2008 à 16:29:46 | Re : fsockopen et boucle

NewSky

Multiples utilisations :
  • Génération de plan sitemap
  • Etudes des pages pour un référencement
  • tout ce à quoi peut servir un crawler...
Ça ne te semble pas pertinent?

 

mercredi 2 avril 2008 à 16:44:31 | Re : fsockopen et boucle

neigedhiver

@Yoman64

"Ce message ne t'apportas rien à ton problème puisque je sais que si neigedhiver dit que c'est bien, alors c'est forcément vrai :P"

C'est gentil, mais c'est n'importe quoi lol


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mercredi 2 avril 2008 à 17:04:19 | Re : fsockopen et boucle

yoman64

Membre Club
@NewSky: Biensur c'est tout à fait pertinent.Comme j'ai dis c'était par curiosité, je n'ai jamais mis en doute la pertinence de ton projet.

@neigedhiver: Tu as sans doute raison Mais il n'en reste pas moin que tu es un des "experts" de ce site, alors il est rare (enfin...) de devoir te contredire.

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
mercredi 2 avril 2008 à 19:31:51 | Re : fsockopen et boucle

NewSky

Je vais donc rester sur ma première position
Merci de votre aide
mercredi 2 avril 2008 à 20:08:12 | Re : fsockopen et boucle

malalam

Administrateur CodeS-SourceS
hello,

"Il est aussi impossible d'utiliser rewind() ou autre fseek() avec fsockopen."
Ce n'est pas tout à fait vrai. Je te propose une alternative (désolé si je grille l'avis des autres ;-)) :
http://fr2.php.net/manual/en/function.stream-wrapper-register.php
Je te laisse fouiller et tâcher de comprendre.


Cette discussion est classée dans : boucle, page, données, têtes, fsockopen


Répondre à ce message

Sujets en rapport avec ce message

Mise en page Bug ! [ par kikifrance ] Salut! J'ai un buggue que je rencontre depuis peu. Je ne sais pas ce que j'ai touché pour en arriver là ! Je traite des données en boucle. Toutes checkbox dans une fonction [ par margChamo ] bonjour, voila ca fait plusieurs jours que je cherche et que je test des morceau de codes mais sans résultat c'est pour cela que je sollicite votre ai création de fichiers php à partir d'une BDD [ par anthony428 ] Bonjour à tous, alors voila, j'ai une base de données de laquelle je récupère les données pour les afficher de manière automatique dans un fichier. L problème de direction vers une autre page php [ par vishwas ] hafsa_rani[^^sad2] Bonjour tout le monde et désolée pour le dérangement chaque fois.. J'ai une page web où je fait la consultation des données de ma b création d'une base de données complexe " on va dire " [ par artificier15 ] bonjour je souhaiterais créer une base de données à partir de copier / coller d'une page web, l'insérer dans une page sur mon site, l'envoyer dans la Extraction des données entre deux pages web en php [ par nostalgieing ] bonjour je suis debutante en php et j'ai un probleme dans l'implementation d'une page web :je veux extraire des données d'une pages web à partir d'u problème de direction vers une autre page php [ par vishwas ] hafsa_rani[^^confus5] [b]Bonjour tout le monde; J'ai réaliser ce code là pour afficher les enregistrements d'une base de données; le problème c'est qu recupération de données et id d'un formulaire dans un tableau [ par Alpha911 ] Bonjour, Je ne sais pas si cela est possible si celà l'était quelqu'un pourrait il m'expliquer comment récupérer une multitude de données dans un arra transmission de données de page en page [ par raouen ] Bonjour à tous [^^happy13] Mon site contient juste des formulaires et chaque form contient à la fin de 2 buttons: précédent( pour revenir au formula comment afficher les données? [ par abou ilyas ] Salut! je suis un gros nul en PHP, mais j'aimerais bien apprendre ce le langage. mon problème et comme suit: j'ai une base de données que j'ai créée a


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,014 sec (3)

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