Когда я выполняю этот код своего компьютера с помощью "Google App Engine SDK", он отображает (в моем браузере) HTML-код домашней страницы Google:
from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
print result.content
Как я могу заставить его отобразить саму страницу? Я подразумеваю, что хочу видеть, что страница в моем браузере путем это обычно замечалось бы любым пользователем Интернета.
Обновление 1:
Я вижу, что получил несколько вопросов, которые выглядят немного сложными мне, хотя я определенно помню, что смог сделать это, и это было очень просто, кроме я не помню то, что точно я изменил затем в этом коде.
Возможно, я не предоставлял Вам всем достаточно подробной информации о том, как я выполняю этот код и где я нашел его. Так, позвольте мне сказать Вам, что я сделал. Я только установил Python 2.5 на своем компьютере и затем загрузил "Google App Engine SDK" и установил его, также. При следовании инструкциям на странице "GAE" (http://code.google.com/appengine/docs/python/gettingstarted/helloworld.html) я создал каталог и назвал ее “My_test”, затем я создал “my_test.py” в ней содержащий, что маленькая часть кода, который я упомянул в своем вопросе.
Затем продолжая следовать упомянутые инструкции, я создал “app.yaml” файл в нем, в котором был упомянут мой “my_test.py” файл. После этого в “Google App Engine Launcher” я нашел каталог “My_test” и нажал на Кнопку запуска, и затем на Обзоре. Затем посетив этот URL http://localhost:8080/ в моем веб-браузере, я видел результаты.
Я определенно помню, что смог отобразить любую страницу в своем браузере таким образом, и это было очень просто, кроме я не помню то, что точно я изменил в коде (это было небольшое изменение). Теперь, все, что я вижу, является необработанным HTML-кодом страницы, но не самой страницы.
Обновление 2:
(это обновление является моим ответом на wescpy),
Привет, wescpy!!! Я попробовал Ваш обновленный код, и что-то не работало хорошо там. Возможно, именно, потому что я не использую определенную платформу, я, как предполагается, использую для этого кода. Смотрите на этот снимок экрана (я предполагаю, что необходимо будет щелкнуть правой кнопкой по этому изображению для наблюдения его в лучшем разрешении):
(источник: narod.ru)
Это не так просто, вы должны анализировать контент и настраивать относительно абсолютных путей для изображений и javascripts.
В любом случае попробуйте добавить правильный Content-Type:
from google.appengine.api import urlfetch
url = "http://www.google.com/"
result = urlfetch.fetch(url)
print 'Content-Type: text/html'
print ''
print result.content
более полный пример мог бы выглядеть примерно так:
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import urlfetch
class MainHandler(webapp.RequestHandler):
def get(self):
url = "http://www.google.com/"
result = urlfetch.fetch(url)
self.response.out.write(result.content)
application = webapp.WSGIApplication([
('/', MainHandler),
], debug=True)
def main():
run_wsgi_app(application)
if __name__ == '__main__':
main()
но, как говорили другие, это не так просто сделать, потому что вы не в домена сервера, то есть страницы, скорее всего, не будут выглядеть правильно из-за отсутствия статического содержимого (JS, CSS и / или изображения) ... если не используются полные пути или все, что необходимо, встроено в страницу сам.
ОБНОВЛЕНИЕ 1:
как упоминалось ранее, вы не можете просто загрузить исходный HTML-код и ожидать, что все будет отображаться правильно, потому что у вас не обязательно есть доступ к статическим данным. если вы действительно хотите отобразить его так, как это должно было быть видно, вам нужно просто перенаправить ... вот измененный фрагмент кода:
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import urlfetch
class MainHandler(webapp.RequestHandler):
def get(self):
url = "http://www.google.com/"
self.redirect(url)
application = webapp.WSGIApplication([
('/', MainHandler),
], debug=True)
def main():
run_wsgi_app(application)
if __name__ == '__main__':
main()
ОБНОВЛЕНИЕ 2:
извините! это была ошибка вырезания и вставки. теперь попробуйте.
специальные символы, такие как <> и т. Д., Скорее всего, закодированы, вам придется декодировать их снова, чтобы браузер интерпретировал их как код.