Pregunta

Cuando veo la fuente de la página en el navegador (Firefox) (Ver> Código fuente de página), copiarlo y pegarlo en mi editor HTML, veo casi la misma página (en este ejemplo, es www.google .com) tal como aparece en mi navegador. Pero cuando llegue el código HTML a través de este código (a través de la aplicación de Google Motores)

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

copiarlo y pegarlo en mi editor HTML, la página a continuación, se ve muy diferente. ¿Por que es esto entonces? ¿Hay algo mal con el código?

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

Seguimiento:

Por este momento (Domingo, 13ª diciembre de 2009, 13:01, GMT, para ser exactos) que he recibido dos comentarios-preguntas (de Aaron y Christian P. ) y una respuesta de Alex Martelli .

Tanto Aaron y Christian P. se preguntan sobre lo que realmente es diferente entre la fuente obtenido-Fuego-Fox y la fuente-app-engine-obtiene Google cuando están tanto que se muestra a través del mismo editor HTML.

Aquí he subido demasiado capturas de pantalla:

Uno muestra la fuente obtenido-Fuego-Fox

la otra fuente de muestra obtenida Google-app-engine-

cuando ambos se visualizan a través de editor de “MS Front Page”.

Una de las diferencias, que es bastante obvio, es diferente codificación:. En el código de Fuego-Fox todo está representada en Inglés, mientras que en el código de Google-app-engine consigo una gran cantidad de diferentes símbolos, en lugar

Otra diferencia es algunas líneas adicionales en la parte superior de la página en el código de Google App Engine. Creo que esto es lo que Alex Martelli estaba hablando en su respuesta ( “... el enfoque se ha podido recuperar e imprimir va a tener metadatos a su alrededor, así ...”).

Uno más pequeña diferencia es que el cuadro de la imagen de Google se divide en varias cajas en un código, mientras que sigue siendo todo en el otro.

Alex Martelli sugirió que utilizo este código (si lo entendí correctamente):

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

Lo he intentado, pero en este caso no se muestra nada en absoluto.

Gracias a todos por sus respuestas y, por favor, seguir respondiendo - Tengo muchas ganas de ver este problema resuelto finalmente

.

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

Seguimiento:

De acuerdo, el problema se ha resuelto.

No pude pagar mi atención a Alex Martelli 's instrucciones y, por lo tanto, se le ocurrió un código incorrecto. Aquí es lo correcto:

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

Este código muestra exactamente lo que se necesita - no hay líneas adicionales en la parte superior de la página

.

Bueno, sigo teniendo los símbolos extraños, pero descubrí que es probable que sea un problema de Google. Lo que pasa es que estoy actualmente en Taiwán, y Google parece ser consciente de ello y cambia automáticamente a partir www.google.com (que está en Inglés) para www.google.com.tw (que está en chino), pero éste , supongo, ya es otro tema.

Gracias a todos los que han respondido aquí.

¿Fue útil?

Solución

No ha emitido explícitamente un "tipo de contenido" de cabecera, y una línea en blanco al final de las cabeceras, por lo que las primeras líneas son probablemente va a ser perdido; trate de añadir antes de la última print algo así como

   print "content-type: text/plain"
   print

Más allá de esto, lo que está recibiendo en ambos casos es esencialmente un gran <script> con un poco de HTML adicional alrededor de ella - eso es todo lo que Firefox se va a dar en la página "ver fuente", mientras que la zona de alcance y -print enfoque va a tener metadatos alrededor de ella, así, por ejemplo, el "doctype" (dependiendo de qué editor HTML que usted está apuntando, esto puede o no puede ser un problema).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top