Frage

Wenn ich die Quelle der Seite in meinem Browser (FireFox) (View-> Seite Source) zu sehen, kopieren und sie in mein HTML-Editor einfügen, sehe ich fast die gleiche Seite (In diesem Beispiel ist es www.google .com) als erscheint es in meinem Browser. Aber wenn ich die HTML-Quelle durch diesen Code zu erhalten (durch Googles App Engines)

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

kopieren und sie in mein HTML-Editor einfügen, die Seite sieht dann ganz anders aus. Wieso ist es so? Gibt es etwas falsch mit dem Code?

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

Follow-up:

Mit diesem Moment (Sonntag, 13. Dezember 2009, 01.01 Uhr, GMT, um genau zu sein) Ich habe zwei Bemerkungen-Fragen erhalten (von Aaron und Christian P. ) und eine Antwort von Alex Martelli .

Sowohl Aaron und Christian P. fragen, was eigentlich unterscheidet zwischen der Feuer-Fox erhaltene Quelle und Google-App-Motor erhaltene Quelle, wenn sie beide durch den gleichen HTML-Editor angezeigt.

Hier habe ich auch Screenshots hochgeladen:

One zeigt die Feuer-Fox-Quelle erhalten

Und die andere zeigt Google-App-Motor-Quelle erhalten

, wenn sie beide angezeigt durch „MS Front Page“ Editor.

Ein Unterschied, der ganz offensichtlich ist, unterscheidet sich Codierung. In Fire-Fox-Code alles in Englisch angezeigt wird, während in der Google-App-Motorcode ich viele verschiedene Symbole bekommen, anstatt

Ein weiterer Unterschied ist einige zusätzliche Zeilen am oberen Rand der Seite im Motorkennbuchstabe Google App. Ich denke, das ist, was Alex Martelli spricht in seiner Antwort ( „... der Fetch-and-Print-Ansatz Metadaten um es so gut haben wird ...“).

Ein weiterer kleiner Unterschied besteht darin, dass das Feld für die Google Bild in mehrere Boxen in einem Code aufgeteilt wird, während es ganz in der anderen bleibt.

Alex Martelli vorgeschlagen, dass ich diesen Code verwenden (wenn ich ihn richtig verstanden habe):

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

Ich habe es versucht, aber in diesem Fall nichts überhaupt angezeigt.

Vielen Dank für Ihre Antworten und bitte weiter reagieren - Ich möchte wirklich dieses Problem sehen endlich gelöst

.

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

Follow-up:

Okay, wurde das Problem behoben.

ich nicht meine volle Aufmerksamkeit auf Alex Martelli 's Anweisungen und damit zu bezahlen, mit einem falschen Code kam. Hier ist er recht ein:

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

Dieser Code zeigt genau das, was gebraucht wird - keine zusätzlichen Linien am oberen Rand der Seite

.

Nun, ich bekomme immer noch die seltsamen Symbole, aber ich entdeckte, dass es wahrscheinlich die Google-Problem. Die Sache ist, ich bin zur Zeit in Taiwan, und Google scheint, dass sich bewusst zu sein, und schaltet automatisch von www.google.com (in englischer Sprache ist) zu www.google.com.tw (die Chinesen), aber dieser , glaube ich, ist schon ein anderes Thema.

Danke an alle, die hier angesprochen hat.

War es hilfreich?

Lösung

Sie haben nicht explizit einen „Inhaltstyp“ Kopf emittiert wird, und eine End-of-Header Leerzeile, so dass die ersten paar Zeilen sind wahrscheinlich verloren gehen werden; versuchen Sie, vor der endgültigen print so etwas wie

   print "content-type: text/plain"
   print

Darüber hinaus, was Sie in jedem Fall immer ist im Wesentlichen eine große <script> mit ein wenig mehr HTML drum herum - das ist alles, dass Firefox Sie wird geben, in der „Quelltext anzeigen“ Seite, während der Abruf-und -Druck Ansatz wird auch Metadaten, um es haben, zum Beispiel der „doctype“ (je nachdem, welche HTML-Editor Du Targeting kann dieser oder möglicherweise kein Problem sein).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top