2011-02-06 4 views
0

Nous téléchargeons des images sur nos ordinateurs lorsque nous ouvrons de nouvelles pages Web. Par exemple: Si une page Web a une image (image.jpg), notre ordinateur la télécharge pendant que nous surfons sur cette page.Curl preg_match

Certaines pages Web utilisent des méthodes ajax. Par exemple: Vous ne voyez pas d'image sur les codes sources de la page, mais votre ordinateur télécharge une image. Parce que, si vous cliquez sur un lien sur cette page, ajax montrera que l'image ...

Permettez-moi un exemple:

<div id="ajax_will_load_image_here"></div> 

D'accord, comment peut php voir boucle (ou télécharger) cette image ? Curl ne peut pas voir cette image lorsque j'essaie d'utiliser la fonction preg_match. En fait, il y a une image. Je veux télécharger cette image en utilisant php curl. Aucun conseil?

Répondre

0

Si je comprends bien la question, il n'y a pas de façon pratique de le faire.

Votre crawler/spider devrait analyser le site Web et évaluer javascript.

Il existe des bibliothèques pour cela, mais le support est très limité.

Il existe cependant des méthodes où un véritable navigateur est utilisé pour l'évaluation de la page (sans l'afficher mais en définissant des variables d'environnement appropriées comme la résolution, etc.). Ensuite, la source générée, y compris les modifications javascript dom, est disponible.

Ceci est par exemple la façon dont les aperçus de recherche google sont générés.

Mais si vous avez besoin de l'interaction de l'utilisateur, cela devient assez spécifique et compliqué.

Je suis désolé de vous décevoir, mais en utilisant curl et preg metch la vieille façon de l'école où nous étions javascript n'était pas encore si commune ne fonctionnera pas. Toutefois, pour la plupart des cas d'utilisation légitimes, cela est plus que suffisant et les sites Web sont aujourd'hui de plus en plus conçus pour ne pas être compatibles avec JavaScript. Surtout le contenu à des fins d'exploration. C'est un must dans l'optimisation des moteurs de recherche, et quel site ne veut pas cela?