0
,我一直在努力需要来自用户的输入,输出与一堆基于关键字结果的应用。我使用的网页抓取到报废的结果。谷歌应用程序引擎:创建一个自定义错误页
下面是相同的Python代码:
import os
import webapp2
import jinja2
from google.appengine.ext import db
import urllib2
import re
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
class MainPage(Handler):
def get(self):
self.render("formrss.html")
def post(self):
x = self.request.get("rssquery")
url = "http://www.quora.com/" + x + "/rss"
content = urllib2.urlopen(url).read()
content = content.decode('utf-8')
allTitles = re.compile('<title>(.*?)</title>')
allLinks = re.compile('<link>(.*?)</link>')
list = re.findall(allTitles,content)
linklist = re.findall(allLinks,content)
self.render("frontrss.html", list = list, linklist = linklist)
app = webapp2.WSGIApplication([('/', MainPage)], debug=True)
现在,因为我通过将用户输入的关键词获得最终的URL,总有一个机会,从关键字得到的网址是无效的。因此,在这种情况下,用户得到一个404错误。
这里的应用程序的实时演示:
我如何才能避免这个错误?或者说,我怎么能显示的情况下获得的网址无法使用用户自定义消息?我不希望用户认为应用程序被破坏或发生故障时代替用户输入的关键字是无效的。