parent
2f1006d2ff
commit
2dec6bc0a5
@ -0,0 +1,61 @@ |
||||
import json |
||||
import re |
||||
|
||||
import requests |
||||
from bs4 import BeautifulSoup |
||||
|
||||
|
||||
def getUrl(playurl): |
||||
# 请求头 |
||||
headers = { |
||||
'X-Requested-With': 'XMLHttpRequest', |
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' |
||||
'Chrome/56.0.2924.87 Safari/537.36' |
||||
} |
||||
|
||||
# headers['referer']='http://www.miguvideo.com/wap/resource/pc/detail/miguplay.jsp?cid=650644142' |
||||
|
||||
baseurl = 'www.miguvideo.com/wap/resource/pc/detail/miguplay.jsp' |
||||
try: |
||||
if re.match("^(http|https):\/\/www\.miguvideo\.com\/wap\/resource\/pc\/detail\/miguplay\.jsp\?cid=\d+$",playurl): |
||||
req = requests.get(playurl, headers=headers) |
||||
sessionID = 0 |
||||
playId = 0 |
||||
# 提取接口参数 |
||||
cid = re.findall('\d+', playurl)[0] |
||||
# 获取sessionID |
||||
result={'msg':'网络异常'} |
||||
if req.status_code == 200: |
||||
document = BeautifulSoup(req.text, 'lxml') |
||||
print('sessionID=%s' % sessionID) |
||||
sessionID = document.select('#sessionID')[0].get('value') |
||||
print('sessionID=%s' % sessionID) |
||||
# 获取playId |
||||
if req.status_code == 200: |
||||
req = requests.get('http://www.miguvideo.com/wap/resource/pc/data/miguData.jsp?cid=%s' % cid, |
||||
headers=headers) |
||||
miguData = json.loads(req.text) |
||||
print('playId=%s' % playId) |
||||
playId = miguData[0]['playId'] |
||||
print('playId=%s' % playId) |
||||
|
||||
# 使用播放地址接口获取视频信息 |
||||
req = requests.get( |
||||
'http://www.miguvideo.com/playurl/v1/play/playurlh5?contId=%s&rateType=1,2,3&clientId=%s' % ( |
||||
playId, sessionID)) |
||||
if req.status_code == 200: |
||||
videoInfo = json.loads(req.text) |
||||
# 解析出json结构视频信息,获取视频真实地址 |
||||
result = {'name': miguData[0]['Detail'],'video':[]}; |
||||
print("视频信息=%s" % miguData[0]['Detail']) |
||||
if videoInfo['code'] == '200' and 'body' in videoInfo and 'urlInfos' in videoInfo['body']: |
||||
for info in videoInfo['body']['urlInfos']: |
||||
result['video'].append({'rateDesc':info['rateDesc'],'url':info['url'],'mediaSize':info['mediaSize']}) |
||||
print('清晰度=%s' % info['rateDesc']) |
||||
print('真实地址=%s' % info['url']) |
||||
print('视频大小=%s字节' % info['mediaSize']) |
||||
else: |
||||
result = {'msg': '不是合法播放地址'} |
||||
except BaseException as e: |
||||
result={'msg':'程序异常'} |
||||
return result |
Loading…
Reference in new issue