Question

Quand je regarde la source de la page dans mon navigateur (FireFox) (Affichage-> Page Source), le copier et le coller dans mon éditeur HTML, je considère presque la même page (Dans cet exemple, il est www.google .com) tel qu'il apparaît dans mon navigateur. Mais quand je reçois la source HTML grâce à ce code (par les moteurs App Googles)

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print result.content

copier et le coller dans mon éditeur HTML, la page semble alors tout à fait différente. Pourquoi est-il? Y at-il quelque chose de mal avec le code?

++++++++++++++++++++++++++++++

Suivi:

En ce moment (Dimanche, 13 Décembre 2009, 13h01, GMT, pour être précis) J'ai reçu deux commentaires-questions (de Aaron et Christian P. ) et une réponse de Alex Martelli .

Les deux Aaron et Christian P. PARLONS ce qui est réellement différent entre l'a obtenu Google App-moteur-source et obtenu au feu Fox source lorsqu'ils sont tous deux affichés par le même éditeur HTML.

Ici, je l'ai téléchargé trop captures d'écran:

On montre la source obtenue-Fire-Fox

l'autre source de Google montre-App obtenu moteur-

quand ils sont tous deux affichés par l'éditeur « MS Front Page ».

Une différence, ce qui est tout à fait évident, est un codage différent. En tout CNPI-Fox est affiché en anglais, alors que dans le code du moteur Google App Je reçois beaucoup de symboles différents, au lieu

Une autre différence est quelques lignes supplémentaires en haut de la page dans le code de Google App Engine. Je pense que, c'est ce que Alex Martelli a parler dans sa réponse ( « ... l'approche de lecture-impression va avoir des métadonnées autour aussi bien ... »).

Une autre différence mineure est que la case pour l'image de Google est divisée en plusieurs cases dans un code, alors qu'il reste entier dans l'autre.

Alex Martelli a suggéré que j'utiliser ce code (si je l'ai bien compris):

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print "content-type: text/plain"
   print

Je l'ai essayé, mais dans ce cas, rien est affiché en.

Merci à tous pour vos réponses et, s'il vous plaît, continuer à répondre - Je veux vraiment voir ce problème finalement résolu

.

++++++++++++++++++++++++++++++

Suivi:

D'accord, le problème a été résolu.

J'omis de payer mon attention à Alex Martelli 's instructions et, par conséquent, est venu avec un code erroné. Voici est-il un droit:

from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
if result.status_code == 200:
   print "content-type: text/plain"
   print
   print result.content

Ce code affiche exactement ce qui est nécessaire - pas de lignes supplémentaires en haut de la page

.

Eh bien, je reçois toujours les symboles étranges, mais j'ai découvert qu'il est probablement le problème de Google. La chose est que je suis actuellement à Taiwan, et Google semble être conscient et passe automatiquement de www.google.com (qui est en anglais) à www.google.com.tw (qui est en chinois), mais celui-ci , je suppose, est déjà un autre sujet.

Merci à tous ceux qui ont répondu ici.

Était-ce utile?

La solution

Vous n'avez pas émis explicitement un en-tête « type de contenu », et une fin de têtes ligne vide, de sorte que les premières lignes vont probablement perdre; essayez d'ajouter avant quelque chose de print finale comme

   print "content-type: text/plain"
   print

Au-delà, ce que vous obtenez dans les deux cas est essentiellement un grand <script> avec un peu de HTML supplémentaire autour de lui - c'est tout ce que Firefox va vous donner dans la page « source de vue », alors que la lecture- approche -print va avoir des métadonnées autour ainsi, par exemple, le « doctype » (en fonction de ce que l'éditeur HTML que vous ciblez, cela peut ou ne peut pas être un problème).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top