如何处理带有加号的python urllib2 appengine中的网址?

这是我的问题。我正在尝试从烂番茄API请求一个URL。现在的问题是,它们要求您让电影标题在任何应该有空格的地方都包含+号。但是我不确定如何在App Engine端实现此功能,因为每当我尝试在App Engine上执行相同的操作时,都会收到相同的错误

这是我的代码:


    title = self.request.get("title")

    site = "http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=" + constants.ROTTEN_TOMATOES_KEY + "&q=" + title + "&page_limit=1"

    page = urllib2.urlopen(site)

    soup = BeautifulSoup(page)

    self.response.out.write(soup)

常量只是一个包含我所有密码和内容的python文件,我正在使用漂亮的汤来清理东西,但是我敢肯定这不是问题。只需访问URL myapplication.com/about?title=your+title+goes+here,即可访问此代码,其中myapplication将是网站的URL,可能是一些appspot.com的URL。


这适用于不包含+号的URL。


GCT1015
浏览 126回答 4
4回答

翻翻过去那场雪

我用urllib.urlencode。例子:params = { 'q' : 'value', 'apikey' : key_value }request_url += urllib.urlencode(params)urllib2.urlopen(request_url)

拉丁的传说

我还没有找到处理加号的方法,因为appengine似乎推断这些是新的变量/值。但是,只要访问URL的应用程序能够用[regex]而不是普通的'+'代替[space],则使用'+'以外的正则表达式是解决整个问题的可行方法。鉴于此服务的预期应用程序将成为iPhone应用程序的后端,因此此方法应该不会有太多麻烦。我只需要确保我的正则表达式不包含在任何电影名称中,并且它不会太长。对于使用appengine将此类数据转发到另一个在线服务的网络应用程序,可以编写一个JavaScript脚本来正确处理此问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python