123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #coding=utf-8
- #!/usr/bin/python
- import sys
- sys.path.append('..')
- from base.spider import Spider
- import json
- class Spider(Spider): # 元类 默认的元类 type
- def getDependence(self):
- return ['py_ali']
- def getName(self):
- return "YYDS"
- def init(self,extend=""):
- self.ali = extend[0]
- print("============YYDS============".format(extend))
- pass
- def homeContent(self,filter):
- result = {}
- cateManual = {
- "热门":"0",
- "电影":"3",
- "剧集":"12",
- "综艺":"10"
- }
- classes = []
- for k in cateManual:
- classes.append({
- 'type_name':k,
- 'type_id':cateManual[k]
- })
- result['class'] = classes
- return result
- def homeVideoContent(self):
- result = {
- 'list':[]
- }
- return result
- def categoryContent(self,tid,pg,filter,extend):
- result = {}
- form = {
- 'limit': 24,
- 'skip': int(pg) * 24 - 24,
- 'keyword': '',
- 'category_id': tid,
- }
- rsp = self.post("https://cmn.yydshd.com/api/posts",data=form)
- jo = json.loads(rsp.text)
- vodList = jo['data']['list']
- videos = []
- for vod in vodList:
- name = vod['title']
- pic = vod['cover']
- sid = vod['id']
- suffix = ''
- if vod['is_vip'] == 1:
- suffix = ' 会员'
- mark = str(vod['score']) + suffix
- videos.append({
- "vod_id":sid,
- "vod_name":name,
- "vod_pic":pic,
- "vod_remarks":mark
- })
- result['list'] = videos
- result['page'] = pg
- result['pagecount'] = 9999
- result['limit'] = 90
- result['total'] = 999999
- return result
- token = ''
- def getHeader(self,force=False):
- if len(self.token) == 0 or force:
- form = {
- 'email': '',
- 'password': ''
- }
- if len(form['password']) > 0:
- rsp = self.post("https://cmn.yydshd.com/api/login",data=form)
- jo = json.loads(rsp.text)
- self.token = jo['data']['token']
- return {
- 'token':self.token,
- 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70'
- }
- def detailContent(self,array):
- tid = array[0]
- result = {}
- form = {
- 'id': tid
- }
- rsp = self.post("https://cmn.yydshd.com/api/post-info",data=form,headers=self.getHeader())
- jo = json.loads(rsp.text)
- if(jo['status_code'] == 403):
- retry = self.post("https://cmn.yydshd.com/api/post-info",data=form,headers=self.getHeader(True))
- jo = json.loads(retry.text)
- if jo['status_code'] == 403:
- return {'list':[]}
- vodInfo = jo['data']
- videos = []
- name = vodInfo['title']
- pic = vodInfo['cover']
- mark = vodInfo['score']
- vod = {
- "vod_id":tid,
- "vod_name":name,
- "vod_pic":pic,
- "type_name":"",
- "vod_year":vodInfo['year'],
- "vod_area":vodInfo['region'],
- "vod_remarks":mark,
- "vod_actor":vodInfo['actors'],
- "vod_director":vodInfo['director'],
- "vod_content":vodInfo['desc']
- }
- playList = vodInfo['links']
- tmpLink = ''
- for play in playList:
- if play['name'] == '阿里网盘':
- if len(play['item']) > 0:
- tmpLink = play['item'][0]['link']
- break
- if len(tmpLink) > 0:
- vod['vod_play_from'] = 'AliYun$$$AliYun原画'
- newArray = [tmpLink]
- rs = self.ali.detailContent(newArray)
- vod['vod_play_url'] = rs['list'][0]['vod_play_url']
- result = {
- 'list':[
- vod
- ]
- }
- return result
- def searchContent(self,key,quick):
- result = {}
- form = {
- 'limit': 24,
- 'skip': 0,
- 'keyword': key,
- 'category_id': -1,
- }
- rsp = self.post("https://cmn.yydshd.com/api/posts",data=form)
- jo = json.loads(rsp.text)
- vodList = jo['data']['list']
- videos = []
- for vod in vodList:
- name = vod['title']
- pic = vod['cover']
- sid = vod['id']
- suffix = ''
- if vod['is_vip'] == 1:
- suffix = ' 会员'
- mark = str(vod['score']) + suffix
- videos.append({
- "vod_id":sid,
- "vod_name":name,
- "vod_pic":pic,
- "vod_remarks":mark
- })
- result = {
- 'list':videos
- }
- return result
- config = {
- "player": {},
- "filter": {}
- }
- header = {
- "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36",
- }
- def playerContent(self,flag,id,vipFlags):
- return self.ali.playerContent(flag,id,vipFlags)
- def isVideoFormat(self,url):
- pass
- def manualVideoCheck(self):
- pass
- def localProxy(self,param):
- return [200, "video/MP2T", action, ""]
|