我正在尝试使用youtube的数据api来搜索搜索词的位置 包括汉字。 但搜索查询未返回正确的结果。
我正在使用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)
当我搜索你的“a-mei”时代码有效 但是当我搜索你的“阿妹”时,我得不到正确的结果
我还尝试了以下网址:
https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9
(这是作为链接的网址:https://gdata.youtube.com/feeds/api/videos?q=%E9%98%BF%E5%A6%B9)
其中q字符串是utf-8的url编码,用于你“阿妹”
此网址会返回正确的结果。
因此,似乎youtube api允许utf-8用于搜索术语,但是 由于某种原因,我的api电话没有返回正确的结果。
答案 0 :(得分:4)
我相信gdata API应该为您设置格式化查询参数。因此,您不需要手动urllib.quote_plus
您的查询,这样做会导致双重转义字符串,让您真正搜索名称为百分比负载的视频。