Как отобразить страницу в моем браузере с кодом Python, который выполняется локально на моем компьютере с SDK “GAE”?

Когда я выполняю этот код своего компьютера с помощью "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!!! Я попробовал Ваш обновленный код, и что-то не работало хорошо там. Возможно, именно, потому что я не использую определенную платформу, я, как предполагается, использую для этого кода. Смотрите на этот снимок экрана (я предполагаю, что необходимо будет щелкнуть правой кнопкой по этому изображению для наблюдения его в лучшем разрешении): alt text
(источник: narod.ru)

1
задан Glorfindel 24 July 2019 в 15:07
поделиться

3 ответа

Это не так просто, вы должны анализировать контент и настраивать относительно абсолютных путей для изображений и 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
1
ответ дан 3 September 2019 в 01:00
поделиться

более полный пример мог бы выглядеть примерно так:

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:

извините! это была ошибка вырезания и вставки. теперь попробуйте.

1
ответ дан 3 September 2019 в 01:00
поделиться

специальные символы, такие как <> и т. Д., Скорее всего, закодированы, вам придется декодировать их снова, чтобы браузер интерпретировал их как код.

0
ответ дан 3 September 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: