python 调用优酷关键词搜索视频api

编程入门 行业动态 更新时间:2024-10-09 17:29:57

python 调用优酷<a href=https://www.elefans.com/category/jswz/34/1769905.html style=关键词搜索视频api"/>

python 调用优酷关键词搜索视频api

1,第一步注册账号,申请appKey就不说了,根据优酷开放平台的新手指南.
2,在优酷开放平台找到通过关键词搜索视频,查看调用该api需要的系统参数和业务参数。
其它参数都还好,我在调用时碰到的难搞参数有:
a,timestamp,表示时间戳。
python中用time.time()来返回当前时间的时间戳,单位是秒,返回类型是浮点数。
根据调用示例:

.json?opensysparams={“timestamp”: 1453720442,
“client_id”: “163d4fd10c7f9a28”,
“version”: “3.0”,
“access_token”: “d9ce66ced641240836cf6011a4c195bc”,
“action”: “youku.search.video.keyword.get”,
“format”:”json”,
“sign”:”90cfec261f0ddc4ee843ccadf33f7885”}&caller=NOVA&keyword=abc

b,sign,就是签名,具体api的签名方法不一样,本api的签名方法是点击sign后拉到最下边可以看到有一个java生成签名的示例。
我对应着用python生成了一个签名。

具体调用代码如下:

#!/usr/bin/python
#coding=utf-8
#这是调用优酷视频关键字搜索api
#遇到难点:
# 1,需要申请appkey和app secret
# 2,时间戳:我用的是str(int(time.time()))
# 3,sign怎么求?
#根据java示例代码,一步步生成了sign
import sys
import urllib
import time
import json
import hashlib
import pip._vendor.requestsreload(sys)
sys.setdefaultencoding('utf-8')url = ".json"
class call_youku_video_search_api(object):def __init__(self,query):self.query = querydef create_sign(self):strtemp = "action" + urllib.quote("youku.search.video.keyword.get") + "client_id" + urllib.quote("965416d2d0c16") + "format" + urllib.quote("json") + 'keyword' + urllib.quote(self.query) + "timestamp" + urllib.quote(str(int(time.time()))) + "version" + urllib.quote("3.0")strtemp = strtemp + "30692e8a8e0256016837fb"  # 这个就是secretm = hashlib.md5()m.update(strtemp)sign = m.hexdigest()return signdef get_veideo(self):sign = self.create_sign()opensysparams = {"action": "youku.search.video.keyword.get","client_id": "965416d2d0c16","format": "json","timestamp": str(int(time.time())),"version": "3.0","sign": sign}params = {'opensysparams': str(json.dumps(opensysparams)),'keyword': self.query}data = urllib.urlencode(params)res = pip._vendor.requests.get(url, params=data)result = json.dumps(res.json(), ensure_ascii=False, encoding="utf-8")result = result.strip('\n')result = result.strip()title_link = []npos1 = result.find("\"title\":")while npos1 != -1:result = result[npos1:]result = result.lstrip("\"title\":")npos2 = result.find("\"")result = result[npos2:]result = result.lstrip("\"")npos3 = result.find("\"")titletemp = "\"" + result[:npos3] + "\""result = result[npos3:]result = result.lstrip("\"")npos4 = result.find("\"rurl\":")if npos4 != -1:result = result[npos4:]result = result.lstrip("\"rurl\":")npos5 = result.find("\"")result = result[npos5:]result = result.lstrip("\"")npos6 = result.find("\"")linktemp = "\"" + result[:npos6] + "\""result = result[npos6:]result = result.lstrip("\"")title_link.append(titletemp + ":" + linktemp)npos1 = result.find("\"title\":")if title_link:for i in range(0, len(title_link)):print title_link[i]return title_link
if __name__ == '__main__':myvideo = call_youku_video_search_api("卧虎藏龙")myvideo.get_veideo()

更多推荐

python 调用优酷关键词搜索视频api

本文发布于:2024-02-27 15:46:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707197.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:关键词   视频   python   api

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!