J'ai fait quelques scrap avec PHP et obtenu des résultats étranges sur un domaine particulier. Par exemple, quand je télécharger cette page:Structure de l'URL provoquant le renvoi de la page incomplète par le fichier file_get_contents de PHP()
http://pitchfork.com/reviews/tracks/
Il fonctionne très bien. Toutefois, si je tente de télécharger cette page:
http://pitchfork.com/reviews/tracks/1/
Il retourne une page incomplète, même si le contenu est exactement le même. Toutes les pages suivantes (pistes/2 /, pistes/3 /, etc.) renvoient également des données incomplètes.
Il semble y avoir un problème avec la façon dont les URL sont formées lors de la pagination. La plupart des autres sections sur le site présentent le même comportement (la page de destination fonctionne, mais pas les pages suivantes). Une exception est cette section:
http://pitchfork.com/forkcast/
Où forkcast/2/etc fin de travail. Cela peut être dû au fait qu'il ne s'agit que d'un seul répertoire, où la plupart des autres sections contiennent plusieurs répertoires.
Je semble avoir une idée de ce qui cause le problème, mais pas pourquoi ou comment il peut être réparé.
Des idées?
J'ai essayé d'utiliser file_get_contents() et cURL et les deux donnent le même résultat. Il est intéressant de noter que sur toutes les pages qui ne fonctionnent pas, la page incomplète a une longueur approximative de 16 000 caractères. Est-ce un indice?
J'ai créé une page de test où vous pouvez voir la différence:
http://fingerfy.com/test.php?url=http://pitchfork.com/reviews/tracks/
http://fingerfy.com/test.php?url=http://pitchfork.com/reviews/tracks/1/
Il imprime les strlen() et le contenu de la page téléchargée (plus il fait urls par rapport en absolu, de sorte que CSS est correct).
Tous les conseils seraient géniaux!
MISE À JOUR: Mowser, ce qui permet d'optimiser les pages pour mobile n'a aucun problème avec ces pages (http://mowser.com/web/pitchfork.com/reviews/tracks/2/) de sorte que le doit être un moyen de le faire sans que cela ne ....
Une observation rapide - il semble qu'un peu juste de la page est créé dynamiquement en utilisant Javascript (des fonctions comme 'GA_googleFillSlot (" Strip_Reviews "),' sont mentionnés dans la source).Je ne sais pas si cela fonctionnerait encore de manière fiable une fois chargé de cette façon. Une chose qui vaut la peine d'être testée serait d'insérer ' ' dans la tête. –
Merci Lucanos, mais le problème est plus profond. Lorsque vous récupérez la page, elle ne saisit que les 16 premiers Ko. Le reste est manquant, y compris le bas de page et les balises body/html de fermeture, etc. Quelque chose ne va pas au point où la page est servie .... –