0

当我在浏览器 (FireFox) (View->Page Source) 中查看页面源代码时,将其复制并粘贴到我的 HTML 编辑器中,我查看的页面几乎相同(在本例中为 www.google.com)因为它出现在我的浏览器中。但是当我通过这段代码获得 HTML 源代码时(通过 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

复制它并将其粘贴到我的 HTML 编辑器中,然后页面看起来完全不同。为什么会这样?代码有问题吗?

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

跟进:

到现在(准确地说,格林威治标准时间,2009 年 12 月 13 日,星期日,下午 1:01),我收到了两个评论问题(来自AaronChristian P. )和一个来自Alex Martelli的回答。

AaronChristian P.都在询问当 Fire-Fox 获得的源代码和 Google-App-Engine 获得的源代码都通过同一个 HTML 编辑器显示时,它们之间究竟有什么不同。

这里我也上传了屏幕截图:

一个显示了 Fire-Fox 获得的来源

另一个显示 Google-App-Engine-obtained来源

当它们都通过“MS Front Page”编辑器显示时。

一个非常明显的区别是不同的编码:在 Fire-Fox 代码中,所有内容都以英文显示,而在 Google-App-Engine 代码中,我得到了很多不同的符号。

另一个区别是 Google App Engine 代码中页面顶部的一些附加行。我认为,这就是Alex Martelli在他的回答中所说的(“……获取和打印方法也将包含元数据……”)。

另一个较小的区别是,谷歌图像的框在一个代码中被分成几个框,而在另一个代码中它保持完整。

Alex Martelli建议我使用这段代码(如果我理解正确的话):

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

我已经尝试过了,但在这种情况下根本没有显示任何内容。

谢谢大家的回复,请继续回复——我真的很想看到这个问题最终得到解决。

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

跟进:

好的,问题已解决。

我没有完全注意Alex Martelli的说明,因此想出了一个错误的代码。这是他正确的一个:

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

此代码准确显示所需内容 - 页面顶部没有额外的行。

好吧,我仍然得到奇怪的符号,但我发现这可能是谷歌的问题。问题是我目前在台湾,谷歌似乎意识到了这一点并自动从 www.google.com (英文)切换到 www.google.com.tw (中文),但是这个,我猜,已经是另一个话题了。

感谢所有在这里回复的人。

4

1 回答 1

1

您没有明确发出“内容类型”标头和标头结尾空行,因此前几行可能会丢失;尝试在最后添加之前添加print类似

   print "content-type: text/plain"
   print

除此之外,你在这两种情况下得到的基本上都是一个大<script>的,周围有一点额外的 HTML——这就是 Firefox 在“查看源代码”页面中为你提供的所有内容,而获取和打印方法是周围也会有元数据,例如“doctype”(取决于您所针对的 HTML 编辑器,这可能是也可能不是问题)。

于 2009-12-12T18:33:33.303 回答