2011-11-01 105 views
3

我试图使用YouTube的数据API来搜索搜索字词 包含中文字符的位置。 但是,搜索查询未返回正确的结果。Unicode在Youtube API中用于在python中进行视频搜索

我正在使用python,我只是写了一些使用unicode的测试代码。
在测试代码中,我硬编码一个unicode术语,将其转换为utf-8,然后url 将其编码为搜索术语并将其传递给youtube api。 代码如下:

yt_service = gdata.youtube.service.YouTubeService() 
    query = gdata.youtube.service.YouTubeVideoQuery() 

    u_topic = u"a-mei" 
    u_topic = u"阿妹" # a-mei 
    s_topic = u_topic.encode('utf-8') 
    query.vq = urllib.quote_plus(s_topic ) 

    query.time = 'this_month' 
    query.orderby = 'relevance' 
    query.racy = 'include' 
    feed = yt_service.YouTubeQuery(query) 

代码的工作,当我搜索U“阿妹” 但是当我搜索ü我没有得到正确的结果“阿妹”

我也尝试以下网址:

https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9 

(这里的URL作为链接:https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9
在q字符串是UTF-8的URL编码U “阿妹”
该网址返回正确的结果。

因此,似乎youtube api允许utf-8用于搜索条件,但由于某种原因,我的api调用不会返回正确的结果 。

+1

你在脚本的顶部有'# - * - coding:utf-8 - * - '吗? – wberry

+0

好点。是的,我在脚本和html页面都有。 – TaiwanGrapefruitTea

回答

4

我相信gdata API应该照顾格式化查询参数给你。所以你不需要手动输入urllib.quote_plus你的查询,这样做会导致一个双重转义的字符串,让你从字面上搜索名字是百分比负载的视频。

+0

是的!这是错误!感谢您的卓越见识! – TaiwanGrapefruitTea

相关问题