提交 7c47eece 编写于 作者: H hjdhnx

升级新版本

上级 5a3ad357
无法预览此类型文件
......@@ -4,7 +4,7 @@
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date : 2022/8/25
import json
# import bs4
import requests
import re
import math
......@@ -542,7 +542,7 @@ class CMS:
'd': self.d,
'getParse': self.d.getParse,
'saveParse': self.d.saveParse,
'jsp': jsp, 'setDetail': setDetail,
'jsp': jsp,'jq':jsp,'setDetail': setDetail,
})
ctx = py_ctx
jscode = getPreJs() + p.strip().replace('js:', '', 1)
......@@ -608,14 +608,16 @@ class CMS:
desc = ''
p5 = getPP(p,5,pp,4)
links = [pd(item2, _p5) if not self.detailUrl else pdfh(item2, _p5) for _p5 in p5.split('+')]
link = '$'.join(links)
vid = '$'.join(links)
if len(p) > 6 and p[6]:
p6 = getPP(p,6,pp,5)
content = pdfh(item2, p6)
else:
content = ''
if self.二级 == '*':
vid = vid + '@@' + title + '@@' + img
videos.append({
"vod_id": link,
"vod_id": vid,
"vod_name": title,
"vod_pic": img,
"vod_remarks": desc,
......@@ -647,14 +649,16 @@ class CMS:
p4 = getPP(p,4,pp,4)
# link = pd(item, p[4])
links = [pd(item, _p5) if not self.detailUrl else pdfh(item, _p5) for _p5 in p4.split('+')]
link = '$'.join(links)
vid = '$'.join(links)
if len(p) > 5 and p[5]:
p5 = getPP(p,5,pp,5)
content = pdfh(item, p5)
else:
content = ''
if self.二级 == '*':
vid = vid + '@@' + title + '@@' + img
videos.append({
"vod_id": link,
"vod_id": vid,
"vod_name": title,
"vod_pic": img,
"vod_remarks": desc,
......@@ -673,7 +677,7 @@ class CMS:
return self.blank()
result['list'] = videos
# print(videos)
print(videos)
result['no_use'] = {
'code': 1,
'msg': '数据列表',
......@@ -776,7 +780,7 @@ class CMS:
'detailUrl':self.detailUrl or '', # 详情页链接
'getParse': self.d.getParse,
'saveParse': self.d.saveParse,
'jsp': jsp, 'setDetail': setDetail,
'jsp': jsp,'jq':jsp, 'setDetail': setDetail,
})
ctx = py_ctx
# print(ctx)
......@@ -812,6 +816,9 @@ class CMS:
if is_json:
html = self.dealJson(html)
html = json.loads(html)
# else:
# soup = bs4.BeautifulSoup(html, 'lxml')
# html = soup.prettify()
# print(html)
# with open('1.html',mode='w+',encoding='utf-8') as f:
# f.write(html)
......@@ -829,8 +836,12 @@ class CMS:
link = '$'.join(links)
content = '' if len(p) < 6 else pdfh(item, p[5])
# sid = self.regStr(sid, "/video/(\\S+).html")
vod_id = f'{fyclass}${link}' if self.detailUrl else link # 分类,播放链接
if self.二级 == '*':
vod_id = vod_id+'@@'+title+'@@'+img
videos.append({
"vod_id": f'{fyclass}${link}' if self.detailUrl else link,# 分类,播放链接
"vod_id": vod_id,
"vod_name": title,
"vod_pic": img,
"vod_remarks": desc,
......@@ -856,7 +867,8 @@ class CMS:
# *args是不定长参数 列表
# ** args是不定长参数字典
p = parse_str # 二级传递解析表达式 js的obj json对象
detailUrl = kwargs.get('detailUrl','') # 不定长字典传递的二级详情页vod_id原始数据
detailUrl = kwargs.get('detailUrl','') # 不定长字典传递的二级详情页vod_id详情处理数据
orId = kwargs.get('orId','') # 不定长字典传递的二级详情页vod_id原始数据
url = kwargs.get('url','') # 不定长字典传递的二级详情页链接智能拼接数据
vod = kwargs.get('vod',self.blank_vod()) # 最终要返回的二级详情页数据 默认空
html = kwargs.get('html','') # 不定长字典传递的源码(如果不传才会在下面程序中去获取)
......@@ -864,6 +876,13 @@ class CMS:
jsp = kwargs.get('jsp','') # jsp = jsoup(self.url) 传递的jsp解析
fyclass = kwargs.get('fyclass','') # 二级传递的分类名称,可以得知进去的类别
play_url = self.play_url
vod_name = '片名'
vod_pic = ''
# print('二级url:',url)
if self.二级 == '*':
extra = orId.split('@@')
vod_name = extra[1] if len(extra) > 1 else vod_name
vod_pic = extra[2] if len(extra) > 2 else vod_pic
if self.play_json:
play_url = play_url.replace('&play_url=', '&type=json&play_url=')
if p == '*': # 解析表达式为*默认一级直接变播放
......@@ -872,8 +891,10 @@ class CMS:
vod['vod_actor'] = '没有二级,只有一级链接直接嗅探播放'
# vod['vod_content'] = url if not show_name else f'({self.id}) {url}'
vod['vod_content'] = url
vod['vod_id'] = detailUrl
vod['vod_play_url'] = '嗅探播放$' + play_url + url
vod['vod_id'] = orId
vod['vod_name'] = vod_name
vod['vod_pic'] = vod_pic
vod['vod_play_url'] = '嗅探播放$' + play_url + url.split('@@')[0]
elif not p or (not isinstance(p, dict) and not isinstance(p, str)) or (isinstance(p, str) and not str(p).startswith('js:')):
pass
......@@ -883,8 +904,8 @@ class CMS:
pdfa = jsp.pjfa if is_json else jsp.pdfa
pd = jsp.pj if is_json else jsp.pd
pq = jsp.pq
vod['vod_id'] = detailUrl
if not html: # 没传递html参数接下来智能获取
vod['vod_id'] = orId
if not html: # 没传递html参数接detailUrl下来智能获取
r = requests.get(url, headers=self.headers, timeout=self.timeout,verify=False)
html = self.checkHtml(r)
if is_json:
......@@ -936,7 +957,7 @@ class CMS:
'd': self.d,
'getParse': self.d.getParse,
'saveParse': self.d.saveParse,
'jsp': jsp, 'setDetail': setDetail,'play_url':play_url
'jsp': jsp,'jq':jsp, 'setDetail': setDetail,'play_url':play_url
})
init_flag['ctx'] = True
if p.get('重定向') and str(p['重定向']).startswith('js:'):
......@@ -1064,7 +1085,8 @@ class CMS:
def detailOneVod(self,id,fyclass='',show_name=False):
vod = self.blank_vod()
detailUrl = str(id)
orId = str(id)
detailUrl = orId.split('@@')[0]
# print(detailUrl)
if not detailUrl.startswith('http') and not '/' in detailUrl:
url = self.detailUrl.replace('fyid', detailUrl).replace('fyclass',fyclass)
......@@ -1076,7 +1098,7 @@ class CMS:
logger.info(f'进入详情页: {url}')
try:
p = self.二级 # 解析
jsp = jsoup(self.url)
jsp = jsoup(url) if url.startswith('http') else jsoup(self.url)
is_js = isinstance(p,str) and str(p).startswith('js:') # 是js
if is_js:
headers['Referer'] = getHome(url)
......@@ -1094,7 +1116,7 @@ class CMS:
'd': self.d,
'getParse': self.d.getParse,
'saveParse': self.d.saveParse,
'jsp':jsp,'setDetail':setDetail,'play_url':play_url
'jsp':jsp,'jq':jsp,'setDetail':setDetail,'play_url':play_url
})
ctx = py_ctx
# print(ctx)
......@@ -1110,11 +1132,11 @@ class CMS:
else:
vod = self.blank_vod()
else:
vod = self.二级渲染(p,detailUrl=detailUrl,url=url,vod=vod,show_name=show_name,jsp=jsp,fyclass=fyclass)
vod = self.二级渲染(p,detailUrl=detailUrl,orId=orId,url=url,vod=vod,show_name=show_name,jsp=jsp,fyclass=fyclass)
except Exception as e:
logger.info(f'{self.getName()}获取单个详情页{detailUrl}出错{e}')
if not vod.get('vod_id'):
vod['vod_id'] = detailUrl
vod['vod_id'] = orId
# print(vod)
return vod
......@@ -1124,6 +1146,7 @@ class CMS:
:param array:
:return:
"""
# print('进入二级')
t1 = time()
array = array if len(array) <= self.limit else array[(fypage-1)*self.limit:min(self.limit*fypage,len(array))]
thread_pool = ThreadPoolExecutor(min(self.limit,len(array))) # 定义线程池来启动多线程执行此任务
......@@ -1163,7 +1186,7 @@ class CMS:
# p = self.一级.split(';') if self.搜索 == '*' and self.一级 else self.搜索.split(';') # 解析
p = self.一级 if self.搜索 == '*' and self.一级 else self.搜索
pp = self.一级.split(';')
jsp = jsoup(self.url)
jsp = jsoup(url) if url.startswith('http') else jsoup(self.url)
videos = []
is_js = isinstance(p, str) and str(p).startswith('js:') # 是js
......@@ -1184,7 +1207,7 @@ class CMS:
# 详情页链接
'getParse': self.d.getParse,
'saveParse': self.d.saveParse,
'jsp': jsp, 'setDetail': setDetail,
'jsp': jsp,'jq':jsp, 'setDetail': setDetail,
})
ctx = py_ctx
# print(ctx)
......@@ -1261,8 +1284,11 @@ class CMS:
link = '$'.join(links)
# print(content)
# sid = self.regStr(sid, "/video/(\\S+).html")
vod_id = link
if self.二级 == '*':
vod_id = vod_id + '@@' + title + '@@' + img
videos.append({
"vod_id": link,
"vod_id": vod_id,
"vod_name": title,
"vod_pic": img,
"vod_remarks": desc,
......@@ -1335,6 +1361,7 @@ class CMS:
'getParse':self.d.getParse,
'saveParse':self.d.saveParse,
'jsp': jsp,
'jq': jsp,
'pdfh': self.d.jsp.pdfh,
'pdfa': self.d.jsp.pdfa, 'pd': self.d.jsp.pd,'play_url':self.play_url
})
......
muban.mxone5.二级.tabs = '.module-tab-item';
muban.mxone5.二级.lists = '.module-player-list:eq(#id)&&.scroll-content&&a';
var rule = Object.assign(muban.mxone5,{
title:'Fun4K',
host:'https://www.fun4k.com',
url:'/vod/fyclass--------fypage---/',
searchUrl:'/vodsearch/**----------fypage---/',
class_parse:'.nav ul li;a&&Text;a&&href;.*/(.*?)/',
cate_exclude: 'Bilibili|虎牙',
headers:{
'User-Agent':'PC_UA',
},
});
\ No newline at end of file
var rule = {
title:'JRKAN直播',
host:'http://jrkankan.com',
url:'/fyclass',
searchUrl:'',
searchable:0,
quickSearch:0,
class_name:'全部',
class_url:'/',
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
play_parse:true,
lazy:'',
limit:6,
double:false,
推荐:'*',
// 一级播放线路x3 可自行切换
// 一级:'.loc_match .d-touch;li&&Text;img&&src;.lab_time&&Text;a:eq(0)&&href',//play.sportsteam365.com
一级:'.loc_match .d-touch;li&&Text;img&&src;.lab_time&&Text;a:eq(1)&&href',//play.sportsteam333.com
// 一级:'.loc_match .d-touch;li&&Text;img&&src;.lab_time&&Text;a:eq(2)&&href',//play.sportsteam666.com
二级:{title:'.sub_list ul li:lt(5)&&Text;.sub_list ul li:lt(2)&&Text',img:'img&&src',desc:';;;.lab_team_home&&Text;.lab_team_away&&Text',content:'.sub_list ul li:lt(2)&&Text',tabs:'',tab_text:'',lists:'.sub_channel a',list_text:'a&&data-group',list_url:'a&&data-play'},
搜索:'',
}
\ No newline at end of file
var rule={
var rule = {
title:'RP影视',
host:'https://mac.rp123.top',
url:'/vodshow/fyclass--------fypage---/',
searchUrl:'/vodsearch/**----------fypage---/',
searchable:2,
quickSearch:0,
filterable:0,
host:'https://mac.rp123.top',
url:'/vodshow/fyclass--hits------fypage---/',
searchUrl:'/vodsearch/-------------/?wd=**',
searchable:2,//是否启用全局搜索,
quickSearch:0,//是否启用快速搜索,
filterable:0,//是否启用分类筛选,
headers:{'User-Agent':'MOBILE_UA',},
class_name:'电影&电视剧&综艺&动漫&纪录片&4K专区',
class_url:'1&2&3&4&35&40',
play_parse:true,
lazy:'',
limit:6,
推荐:'.tab-list.active;a.module-poster-item.module-item;.module-poster-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href',
double:true, // 推荐内容是否双层定位
一级:'body a.module-poster-item.module-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级:{"title":"h1&&Text;.module-info-tag&&Text","img":".lazyload&&data-original","desc":".module-info-item:eq(1)&&Text;.module-info-item:eq(2)&&Text;.module-info-item:eq(3)&&Text","content":".module-info-introduction&&Text","tabs":".module-tab-item.tab-item","lists":".module-play-list:eq(#id) a"},
搜索:'body .module-item;.module-card-item-title&&Text;.lazyload&&data-original;.module-item-note&&Text;a&&href;.module-info-item-content&&Text',
推荐:'.module-poster-item;*;*;*;*',
一级:'.module-poster-item;a&&title;.lazyload&&data-original;.module-item-note&&Text;a&&href',
二级:{"title":"h1&&Text;.module-info-tag-link a&&Text","img":".alignnone&&src","desc":";;;.module-info-items div:eq(4) a&&Text;.module-info-items div:eq(3) a&&Text","content":".show-desc&&Text","tabs":".module-tab-items-box span","lists":".module-play-list:eq(#id) a"},
搜索:'.module-card-item-poster;img&&alt;.lazyload&&data-original;.module-item-note&&Text;a&&href',
}
\ No newline at end of file
3.9.14beta2
\ No newline at end of file
3.9.15
\ No newline at end of file
......@@ -11,6 +11,6 @@ class_name:'电影&电视剧&综艺&动漫',
class_url:'1&2&3&4',
推荐:'.list-a.size;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
一级:'.list-a.size&&ul li;a&&title;.lazy&&data-original;.list-remarks&&Text;a&&href',
二级:{"title":"h2&&a&&Text","img":".lazyload&&data-original","desc":";.data:eq(0) a:eq(2)&&Text;.data:eq(0) a:eq(1)&&Text;.data:eq(2)&&Text;.data:eq(3)&&Text","content":".play-bottom.cor4&&Text","tabs":".swiper-wrapper&&a","lists":".content-playlist:eq(#id) a"},
二级:{"title":"h2&&Text;.play-news&&Text","img":".lazyload&&data-original","desc":";;;.play-top p span:eq(0)&&Text;.play-top p span:eq(1)&&Text","content":".play-bottom&&Text","tabs":".swiper-wrapper a","lists":".content-playlist:eq(#id) a"},
搜索:'.myui-vodlist__media.clearfix li;*;*;*;*',
}
\ No newline at end of file
var rule = {
title:'学生球赛录像',
编码:'gb18030',
host:'http://www.xsm2b.com',
url:'/fyclass/fypage.html',
searchUrl:'',
searchable:0,
quickSearch:0,
class_name:'录像&足球视频&篮球视频&综合视频',
class_url:'matchvideo&footballvideo&basketballvideo&othervideo',
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
play_parse:true,
lazy:'',
limit:6,
double:false,
//推荐:'*',
一级:"js:pdfa=jsp.pdfa;pdfa=jsp.pdfa;pd=jsp.pd;let d=[];log(input);let html=request(input);let list=pdfa(html,'.text_list li');let burl=input.match(/(.*)\\/.*?.html/)[1];log(burl);MY_URL=burl;print(list);list.forEach(function(it){d.push({title:pdfh(it,'a&&Text'),desc:pdfh(it,'.date&&Text'),url:pd(it,'a&&href')})});setResult(d)",
// 一级:'.text_list li;a&&Text;;.date&&Text;a&&href',
二级:'*',
搜索:'',
}
\ No newline at end of file
var rule = {
title:'有声小说吧',
编码:'gb2312',
编码:'gb18030',
host:'http://m.ysxs8.vip',
url:'/downlist/fyclass_fypage.html',
searchUrl:'/search.asp?page=fypage&searchword=**&searchtype=-1',
......
......@@ -7,13 +7,16 @@ var rule = {
title:'荐片',
host:'http://api2.rinhome.com',
homeUrl:'',//网站的首页链接,用于分类获取和推荐获取
url:'/api/crumb/list?area=0&sort=hot&category_id=fyclass&page=fypage&type=0&limit=24&year=0',
url:'/api/crumb/list?area=0&category_id=fyclass&page=fypage&type=0&limit=24&fyfilter',
class_name:'全部&电影&电视剧&动漫&综艺',
class_url:'0&1&2&3&4',
detailUrl:'/api/node/detail?channel=wandoujia&token=&id=fyid',//二级详情拼接链接(json格式用)
searchUrl:'/api/video/search?key=**&page=fypage',
searchable:2,
quickSearch:0,
filterable:1,
filter:{'0': [{'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '0'}, {'n': '2022', 'v': '101'}, {'n': '2021', 'v': '118'}, {'n': '2020', 'v': '16'}, {'n': '2019', 'v': '7'}, {'n': '2018', 'v': '2'}, {'n': '2017', 'v': '3'}, {'n': '2016', 'v': '22'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '热门', 'v': 'hot'}, {'n': '评分', 'v': 'rating'}, {'n': '更新', 'v': 'update'}]}], '1': [{'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '0'}, {'n': '2022', 'v': '101'}, {'n': '2021', 'v': '118'}, {'n': '2020', 'v': '16'}, {'n': '2019', 'v': '7'}, {'n': '2018', 'v': '2'}, {'n': '2017', 'v': '3'}, {'n': '2016', 'v': '22'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '热门', 'v': 'hot'}, {'n': '评分', 'v': 'rating'}, {'n': '更新', 'v': 'update'}]}], '2': [{'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '0'}, {'n': '2022', 'v': '101'}, {'n': '2021', 'v': '118'}, {'n': '2020', 'v': '16'}, {'n': '2019', 'v': '7'}, {'n': '2018', 'v': '2'}, {'n': '2017', 'v': '3'}, {'n': '2016', 'v': '22'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '热门', 'v': 'hot'}, {'n': '评分', 'v': 'rating'}, {'n': '更新', 'v': 'update'}]}], '3': [{'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '0'}, {'n': '2022', 'v': '101'}, {'n': '2021', 'v': '118'}, {'n': '2020', 'v': '16'}, {'n': '2019', 'v': '7'}, {'n': '2018', 'v': '2'}, {'n': '2017', 'v': '3'}, {'n': '2016', 'v': '22'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '热门', 'v': 'hot'}, {'n': '评分', 'v': 'rating'}, {'n': '更新', 'v': 'update'}]}], '4': [{'key': 'year', 'name': '年代', 'value': [{'n': '全部', 'v': '0'}, {'n': '2022', 'v': '101'}, {'n': '2021', 'v': '118'}, {'n': '2020', 'v': '16'}, {'n': '2019', 'v': '7'}, {'n': '2018', 'v': '2'}, {'n': '2017', 'v': '3'}, {'n': '2016', 'v': '22'}]}, {'key': 'sort', 'name': '排序', 'value': [{'n': '热门', 'v': 'hot'}, {'n': '评分', 'v': 'rating'}, {'n': '更新', 'v': 'update'}]}]},
filter_url:'sort={{fl.sort or "hot"}}&year={{fl.year or "0"}}',
headers:{
'User-Agent':'jianpian-android/350',
'JPAUTH':'y261ow7kF2dtzlxh1GS9EB8nbTxNmaK/QQIAjctlKiEv'
......
var rule = {
title:'酷奇MV',
host:'https://www.kuqimv.com',
homeUrl:'/play/',
url:'/play/fyclass_fypage.html',
searchUrl:'/search.php?key=**',
searchable:2,
quickSearch:0,
class_parse:'.m_bor li;a&&Text;a&&href;/play/(\\d+)_1.html',
headers:{
'User-Agent':'MOBILE_UA'
},
timeout:5000,
play_parse:true,
lazy:'',
limit:6,
double:false,
推荐:'*',
一级:'.mv_list li;.name&&Text;.pic img&&src;.singer&&Text;a&&href',
二级:'*',
搜索:'.play_xg li;*;*;*;*',
}
......@@ -33,7 +33,7 @@ function init_test(){
}
let rule = {};
const VERSION = '3.9.14beta2';
const VERSION = '3.9.15';
/** 已知问题记录
* 1.影魔的jinjia2引擎不支持 {{fl}}对象直接渲染 (有能力解决的话尽量解决下,支持对象直接渲染字符串转义,如果加了|safe就不转义)[影魔牛逼,最新的文件发现这问题已经解决了]
* Array.prototype.append = Array.prototype.push; 这种js执行后有毛病,for in 循环列表会把属性给打印出来 (这个大毛病需要重点排除一下)
......@@ -83,7 +83,7 @@ var _pdfh;
var _pdfa;
var _pd;
// const DOM_CHECK_ATTR = ['url', 'src', 'href', 'data-original', 'data-src'];
const DOM_CHECK_ATTR = /(url|src|href|data-original|data-src)$/;
const DOM_CHECK_ATTR = /(url|src|href|data-original|data-src|data-play)$/;
const SELECT_REGEX = /:eq|:lt|:gt|#/g;
const SELECT_REGEX_A = /:eq|:lt|:gt/g;
......@@ -1190,12 +1190,16 @@ function homeVodParse(homeVodObj){
} else{
content = '';
}
let vid = links.join('$');
if(rule.二级==='*'){
vid = vid+'@@'+title+'@@'+img;
}
let vod = {
vod_name: title,
vod_pic: img,
vod_remarks: desc,
vod_content: content,
vod_id: links.join('$')
vod_id: vid
};
// print(vod);
d.push(vod);
......@@ -1238,12 +1242,16 @@ function homeVodParse(homeVodObj){
}else{
content = ''
}
let vid = links.join('$');
if(rule.二级==='*'){
vid = vid+'@@'+title+'@@'+img;
}
let vod = {
vod_name: title,
vod_pic: img,
vod_remarks: desc,
vod_content: content,
vod_id: links.join('$')
vod_id: vid
};
d.push(vod);
......@@ -1370,10 +1378,17 @@ function categoryParse(cateObj) {
});
let link = links.join('$');
let vod_id = rule.detailUrl?MY_CATE+'$'+link:link;
let vod_name = _pdfh(it, p[1]).replace(/\n|\t/g,'').trim();
let vod_pic = _pd(it, p[2],MY_URL);
if(rule.二级==='*'){
vod_id = vod_id+'@@'+vod_name+'@@'+vod_pic;
}
d.push({
'vod_id': vod_id,
'vod_name': _pdfh(it, p[1]).replace(/\n|\t/g,'').trim(),
'vod_pic': _pd(it, p[2],MY_URL),
'vod_name': vod_name,
'vod_pic': vod_pic,
'vod_remarks': _pdfh(it, p[3]).replace(/\n|\t/g,'').trim(),
});
});
......@@ -1478,10 +1493,16 @@ function searchParse(searchObj) {
}else{
content = '';
}
let vod_id = link;
let vod_name = _pdfh(it, p1).replace(/\n|\t/g,'').trim();
let vod_pic = _pd(it, p2,MY_URL);
if(rule.二级==='*'){
vod_id = vod_id+'@@'+vod_name+'@@'+vod_pic;
}
let ob = {
'vod_id': link,
'vod_name': _pdfh(it, p1).replace(/\n|\t/g,'').trim(),
'vod_pic': _pd(it, p2,MY_URL),
'vod_id': vod_id,
'vod_name': vod_name,
'vod_pic': vod_pic,
'vod_remarks': _pdfh(it, p3).replace(/\n|\t/g,'').trim(),
'vod_content': content.replace(/\n|\t/g,'').trim(),
};
......@@ -1510,11 +1531,22 @@ function searchParse(searchObj) {
*/
function detailParse(detailObj){
fetch_params = JSON.parse(JSON.stringify(rule_fetch_params));
let orId = detailObj.orId;
let vod_name = '片名';
let vod_pic = '';
let vod_id = orId;
if(rule.二级==='*'){
// vod_id = orId.split('@@')[0]; // 千万不能分割
let extra = orId.split('@@');
vod_name = extra.length>1?extra[1]:vod_name;
vod_pic = extra.length>2?extra[2]:vod_pic;
}
// print(vod_pic);
let vod = {
vod_id: detailObj.orId, //"id",
vod_name: "片名",
vod_pic: "",
type_name: "剧情",
vod_id: vod_id, //"id",
vod_name: vod_name,
vod_pic: vod_pic,
type_name: "类型",
vod_year: "年份",
vod_area: "地区",
vod_remarks: "更新信息",
......@@ -1536,7 +1568,7 @@ function detailParse(detailObj){
vod.vod_remarks = detailUrl;
vod.vod_actor = '没有二级,只有一级链接直接嗅探播放';
vod.vod_content = MY_URL;
vod.vod_play_url = '嗅探播放$' + MY_URL;
vod.vod_play_url = '嗅探播放$' + MY_URL.split('@@')[0];
}else if(typeof(p)==='string'&&p.trim().startsWith('js:')){
const TYPE = 'detail';
var input = MY_URL;
......@@ -1706,7 +1738,7 @@ function detailParse(detailObj){
vod.vod_play_url = vod_play_url;
}
if(!vod.vod_id){
vod.vod_id = detailObj.orId;
vod.vod_id = vod_id;
}
// print(vod);
return JSON.stringify({
......@@ -1955,7 +1987,7 @@ function detail(vod_url) {
fyclass = tmp[0];
vod_url = tmp[1];
}
let detailUrl = vod_url;
let detailUrl = vod_url.split('@@')[0];
let url;
if(!detailUrl.startsWith('http')&&!detailUrl.includes('/')){
url = rule.detailUrl.replaceAll('fyid', detailUrl).replaceAll('fyclass',fyclass);
......
此差异已折叠。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File : 荐片筛选.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date : 2022/10/22
def getFilters():
fyyear = '全部&2022&2021&2020&2019&2018&2017&2016'.split('&')
fyyeark = '0&101&118&16&7&2&3&22'.split('&')
fysort = '热门&评分&更新'.split('&')
fysortK = 'hot&rating&update'.split('&')
fyclass='0&1&2&3&4'
fy_dict = {}
for i in fyclass.split('&'):
fy_dict[i] = [{
'key': 'year',
'name': '年代',
'value': [{'n':fyyear[j],'v':fyyeark[j]} for j in range(len(fyyear))]
},{
'key': 'sort',
'name': '排序',
'value': [{'n':fysort[k],'v':fysortK[k]} for k in range(len(fysort))]
}]
print(fy_dict)
if __name__ == '__main__':
getFilters()
......@@ -47,6 +47,12 @@
[dockerfile教程](https://blog.csdn.net/qq_46158060/article/details/125718218)
[获取本地设备信息](https://blog.csdn.net/cui_yonghua/article/details/125508991)
[获取本地设备信息](https://m.jb51.net/article/140716.htm)
###### 2022/10/22
- [X] 新增几个直播源
- [X] 优化没有二级的情况自动带入一级图片和标题 @@分割
- [X] 修复 JRKAN直播 二级智能拼接链接不正常的问题
- [X] 学生录像一级用js重写(urljoin没毛病.网址结构有问题,只能如此了,仅支持js1)
- [X] 完善荐片源的筛选
###### 2022/10/21
- [X] 源新增了play_json属性和与之对应的哔哩直播,jrs看直播等源
- [X] 修复俊版无法搜索问题(还需要壳子彻底解决console.log函数问题,无法打印大数据)
......
此差异已折叠。
ewogICJzaXRlcyI6IFsKICAgIHsKICAgICAgImtleSI6ICJaamRyIiwKICAgICAgIm5hbWUiOiAi6L+95Ymn6L6+5Lq6IiwKICAgICAgInR5cGUiOiAzLAogICAgICAiYXBpIjogImNzcF9aamRyIiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiQXVldGUiLAogICAgICAibmFtZSI6ICLlpaXnibkiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX0F1ZXRlIiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiQmlsaSIsCiAgICAgICJuYW1lIjogIuWTlOWTqSIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfQmlsaSIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxLAogICAgICAiZXh0IjogImh0dHA6Ly9ob21lLmp1bmRpZS50b3A6ODEvcmF5L2pzb24vYmlsaS5qc29uIgogICAgfSwKICAgIHsKICAgICAgImtleSI6ICJDb2tlbXYiLAogICAgICAibmFtZSI6ICLlj6/kuZAiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX0Nva2VtdiIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxCiAgICB9LAogICAgewogICAgICAia2V5IjogIkN6c2FwcCIsCiAgICAgICJuYW1lIjogIuWOgumVvyIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfQ3pzYXBwIiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiR2l0Y2FmZSIsCiAgICAgICJuYW1lIjogIue6uOadoSIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfR2l0Y2FmZSIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxLAogICAgICAiZXh0IjogImh0dHA6Ly/liJrliJoubGl2ZS9qc29uL2FsaXRva2VuLmpzb24iCiAgICB9LAogICAgewogICAgICAia2V5IjogIklmMTAxIiwKICAgICAgIm5hbWUiOiAiMTAxIiwKICAgICAgInR5cGUiOiAzLAogICAgICAiYXBpIjogImNzcF9JZjEwMSIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxCiAgICB9LAogICAgewogICAgICAia2V5IjogIklLYW4iLAogICAgICAibmFtZSI6ICLniLHnnIsiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX0lLYW4iLAogICAgICAic2VhcmNoYWJsZSI6IDEsCiAgICAgICJxdWlja1NlYXJjaCI6IDEsCiAgICAgICJmaWx0ZXJhYmxlIjogMQogICAgfSwKICAgIHsKICAgICAgImtleSI6ICJLdWFpa2FuIiwKICAgICAgIm5hbWUiOiAi5b+r55yLIiwKICAgICAgInR5cGUiOiAzLAogICAgICAiYXBpIjogImNzcF9LdWFpa2FuIiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiS3VueXUiLAogICAgICAibmFtZSI6ICLkuIPkuIMiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX0t1bnl1NzciLAogICAgICAic2VhcmNoYWJsZSI6IDEsCiAgICAgICJxdWlja1NlYXJjaCI6IDEsCiAgICAgICJmaWx0ZXJhYmxlIjogMQogICAgfSwKICAgIHsKICAgICAgImtleSI6ICJMaWIiLAogICAgICAibmFtZSI6ICJMaWJ2aW8iLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX0xpYiIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxCiAgICB9LAogICAgewogICAgICAia2V5IjogIkxpdGVBcHBsZSIsCiAgICAgICJuYW1lIjogIuiLueaenCIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfTGl0ZUFwcGxlIiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiU21keXkiLAogICAgICAibmFtZSI6ICLnpZ7pqawiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX1NtZHl5IiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiU1AzNjAiLAogICAgICAibmFtZSI6ICJTUDM2MCIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfU1AzNjAiLAogICAgICAic2VhcmNoYWJsZSI6IDEsCiAgICAgICJxdWlja1NlYXJjaCI6IDEsCiAgICAgICJmaWx0ZXJhYmxlIjogMQogICAgfSwKICAgIHsKICAgICAgImtleSI6ICJYaWFvaCIsCiAgICAgICJuYW1lIjogIlhpYW9oIiwKICAgICAgInR5cGUiOiAzLAogICAgICAiYXBpIjogImNzcF9YaWFvaCIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxCiAgICB9LAogICAgewogICAgICAia2V5IjogIlpoYW96eSIsCiAgICAgICJuYW1lIjogIui1hOa6kCIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfWmhhb3p5IiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEsCiAgICAgICJleHQiOiAiaHR0cDovL+WImuWImi5saXZlL2pzb24vYWxpdG9rZW4uanNvbiIKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiQWxpUFMiLAogICAgICAibmFtZSI6ICLnm5jmkJwiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX0FsaVBTIiwKICAgICAgInNlYXJjaGFibGUiOiAxLAogICAgICAicXVpY2tTZWFyY2giOiAxLAogICAgICAiZmlsdGVyYWJsZSI6IDEsCiAgICAgICJleHQiOiAiaHR0cDovL+WImuWImi5saXZlL2pzb24vYWxpdG9rZW4uanNvbiIKICAgIH0sCiAgICB7CiAgICAgICJrZXkiOiAiWnh6aiIsCiAgICAgICJuYW1lIjogIuWcqOe6vyIsCiAgICAgICJ0eXBlIjogMywKICAgICAgImFwaSI6ICJjc3BfWnh6aiIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxCiAgICB9LAogICAgewogICAgICAia2V5IjogInB1c2hfYWdlbnQiLAogICAgICAibmFtZSI6ICJQdXNoQWdlbnQiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJhcGkiOiAiY3NwX1B1c2hBZ2VudCIsCiAgICAgICJzZWFyY2hhYmxlIjogMSwKICAgICAgInF1aWNrU2VhcmNoIjogMSwKICAgICAgImZpbHRlcmFibGUiOiAxLAogICAgICAiZXh0IjogImh0dHA6Ly/liJrliJoubGl2ZS9qc29uL2FsaXRva2VuLmpzb24iCiAgICB9CiAgXSwKICAibGl2ZXMiOiBbCiAgICB7CiAgICAgICJncm91cCI6ICJyZWRpcmVjdCIsCiAgICAgICJjaGFubmVscyI6IFsKICAgICAgICB7CiAgICAgICAgICAibmFtZSI6ICJyZWRpcmVjdCIsCiAgICAgICAgICAidXJscyI6IFsKICAgICAgICAgICAgInByb3h5Oi8vZG89bGl2ZSZ0eXBlPXR4dCZleHQ9YUhSMGNEb3ZMMmh2YldVdWFuVnVaR2xsTG5SdmNEbzRNUzl5WVhrdmRIWnNhWFpsTG5SNGRBPT0iCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICBdCiAgICB9CiAgXSwKICAicGFyc2VzIjogWwogICAgewogICAgICAibmFtZSI6ICLop6PmnpDogZrlkIgiLAogICAgICAidHlwZSI6IDMsCiAgICAgICJ1cmwiOiAiRGVtbyIKICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIkpzb27lubblj5EiLAogICAgICAidHlwZSI6IDIsCiAgICAgICJ1cmwiOiAiUGFyYWxsZWwiCiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJKc29u6L2u6K+iIiwKICAgICAgInR5cGUiOiAyLAogICAgICAidXJsIjogIlNlcXVlbmNlIgogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAi5Y+v6YGH5LiN5Y+v5rGCIiwKICAgICAgInR5cGUiOiAxLAogICAgICAidXJsIjogImh0dHA6Ly9uZXdqaWV4aS5nb3RrYS50b3Ava2V5dTMucGhwP3VybD0iLAogICAgICAiZXh0IjogewogICAgICAgICJmbGFnIjogWwogICAgICAgICAgInFxIiwKICAgICAgICAgICLohb7orq8iLAogICAgICAgICAgInFpeWkiLAogICAgICAgICAgIueIseWlh+iJuiIsCiAgICAgICAgICAi5aWH6Im6IiwKICAgICAgICAgICJ5b3VrdSIsCiAgICAgICAgICAi5LyY6YW3IiwKICAgICAgICAgICJtZ3R2IiwKICAgICAgICAgICLoipLmnpwiLAogICAgICAgICAgImxldHYiLAogICAgICAgICAgIuS5kOinhiIsCiAgICAgICAgICAicHB0diIsCiAgICAgICAgICAiUFBUViIsCiAgICAgICAgICAic29odSIsCiAgICAgICAgICAiYmlsaWJpbGkiLAogICAgICAgICAgIuWTlOWTqeWTlOWTqSIsCiAgICAgICAgICAi5ZOU5ZOpIgogICAgICAgIF0sCiAgICAgICAgImhlYWRlciI6IHsKICAgICAgICAgICJVc2VyLUFnZW50IjogIm9raHR0cC80LjEuMCIKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImJvenJjIiwKICAgICAgInR5cGUiOiAwLAogICAgICAidXJsIjogImh0dHBzOi8vanguYm96cmMuY29tOjQ0MzMvcGxheWVyLz91cmw9IiwKICAgICAgImV4dCI6IHsKICAgICAgICAiZmxhZyI6IFsKICAgICAgICAgICJxcSIsCiAgICAgICAgICAi6IW+6K6vIiwKICAgICAgICAgICJxaXlpIiwKICAgICAgICAgICLniLHlpYfoiboiLAogICAgICAgICAgIuWlh+iJuiIsCiAgICAgICAgICAieW91a3UiLAogICAgICAgICAgIuS8mOmFtyIsCiAgICAgICAgICAibWd0diIsCiAgICAgICAgICAi6IqS5p6cIiwKICAgICAgICAgICJsZXR2IiwKICAgICAgICAgICJsZXNoaSIsCiAgICAgICAgICAiTFMiLAogICAgICAgICAgInBwdHYiLAogICAgICAgICAgIlBQVFYiLAogICAgICAgICAgInNvaHUiLAogICAgICAgICAgImJpbGliaWxpIiwKICAgICAgICAgICLlk5Tlk6nlk5Tlk6kiLAogICAgICAgICAgIuWTlOWTqSIKICAgICAgICBdLAogICAgICAgICJoZWFkZXIiOiB7CiAgICAgICAgICAiVXNlci1BZ2VudCI6ICIiCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJyeDIiLAogICAgICAidHlwZSI6IDEsCiAgICAgICJ1cmwiOiAiaHR0cDovL3J4angua3Vhbmp2LmNvbS9hbGxtM3U4LnBocD91cmw9IgogICAgfQogIF0sCiAgImZsYWdzIjogWwogICAgInlvdWt1IiwKICAgICJxcSIsCiAgICAiaXFpeWkiLAogICAgInFpeWkiLAogICAgImxldHYiLAogICAgInNvaHUiLAogICAgInR1ZG91IiwKICAgICJwcHR2IiwKICAgICJtZ3R2IiwKICAgICJ3YXN1IiwKICAgICJiaWxpYmlsaSIsCiAgICAiY3NtM3U4IgogIF0sCiAgImlqayI6IFsKICAgIHsKICAgICAgImdyb3VwIjogIui9r+ino+eggSIsCiAgICAgICJvcHRpb25zIjogWwogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJvcGVuc2xlcyIsCiAgICAgICAgICAidmFsdWUiOiAiMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJvdmVybGF5LWZvcm1hdCIsCiAgICAgICAgICAidmFsdWUiOiAiODQyMjI1MjM0IgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogImZyYW1lZHJvcCIsCiAgICAgICAgICAidmFsdWUiOiAiMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJzb3VuZHRvdWNoIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogInN0YXJ0LW9uLXByZXBhcmVkIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogMSwKICAgICAgICAgICJuYW1lIjogImh0dHAtZGV0ZWN0LXJhbmdldXBwb3J0IiwKICAgICAgICAgICJ2YWx1ZSI6ICIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogMSwKICAgICAgICAgICJuYW1lIjogImZmbGFncyIsCiAgICAgICAgICAidmFsdWUiOiAiZmFzdHNlZWsiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiAyLAogICAgICAgICAgIm5hbWUiOiAic2tpcF9sb29wX2ZpbHRlciIsCiAgICAgICAgICAidmFsdWUiOiAiNDgiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAicmVjb25uZWN0IiwKICAgICAgICAgICJ2YWx1ZSI6ICIxIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogImVuYWJsZS1hY2N1cmF0ZWVlayIsCiAgICAgICAgICAidmFsdWUiOiAiMCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJtZWRpYWNvZGVjIiwKICAgICAgICAgICJ2YWx1ZSI6ICIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogIm1lZGlhY29kZWMtYXV0by1yb3RhdGUiLAogICAgICAgICAgInZhbHVlIjogIjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAibWVkaWFjb2RlYy1oYW5kbGUtcmVzb2x1dGlvbi1jaGFuZ2UiLAogICAgICAgICAgInZhbHVlIjogIjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAibWVkaWFjb2RlYy1oZXZjIiwKICAgICAgICAgICJ2YWx1ZSI6ICIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogMSwKICAgICAgICAgICJuYW1lIjogImRuc19jYWNoZV90aW1lb3V0IiwKICAgICAgICAgICJ2YWx1ZSI6ICI2MDAwMDAwMDAiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgewogICAgICAiZ3JvdXAiOiAi56Gs6Kej56CBIiwKICAgICAgIm9wdGlvbnMiOiBbCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogIm9wZW5zbGVzIiwKICAgICAgICAgICJ2YWx1ZSI6ICIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogIm92ZXJsYXktZm9ybWF0IiwKICAgICAgICAgICJ2YWx1ZSI6ICI4NDIyMjUyMzQiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAiZnJhbWVkcm9wIiwKICAgICAgICAgICJ2YWx1ZSI6ICIxIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogInNvdW5kdG91Y2giLAogICAgICAgICAgInZhbHVlIjogIjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAic3RhcnQtb24tcHJlcGFyZWQiLAogICAgICAgICAgInZhbHVlIjogIjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiAxLAogICAgICAgICAgIm5hbWUiOiAiaHR0cC1kZXRlY3QtcmFuZ2V1cHBvcnQiLAogICAgICAgICAgInZhbHVlIjogIjAiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiAxLAogICAgICAgICAgIm5hbWUiOiAiZmZsYWdzIiwKICAgICAgICAgICJ2YWx1ZSI6ICJmYXN0c2VlayIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDIsCiAgICAgICAgICAibmFtZSI6ICJza2lwX2xvb3BfZmlsdGVyIiwKICAgICAgICAgICJ2YWx1ZSI6ICI0OCIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJyZWNvbm5lY3QiLAogICAgICAgICAgInZhbHVlIjogIjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAiZW5hYmxlLWFjY3VyYXRlZWVrIiwKICAgICAgICAgICJ2YWx1ZSI6ICIwIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImNhdGVnb3J5IjogNCwKICAgICAgICAgICJuYW1lIjogIm1lZGlhY29kZWMiLAogICAgICAgICAgInZhbHVlIjogIjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiA0LAogICAgICAgICAgIm5hbWUiOiAibWVkaWFjb2RlYy1hdXRvLXJvdGF0ZSIsCiAgICAgICAgICAidmFsdWUiOiAiMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJtZWRpYWNvZGVjLWhhbmRsZS1yZXNvbHV0aW9uLWNoYW5nZSIsCiAgICAgICAgICAidmFsdWUiOiAiMSIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICJjYXRlZ29yeSI6IDQsCiAgICAgICAgICAibmFtZSI6ICJtZWRpYWNvZGVjLWhldmMiLAogICAgICAgICAgInZhbHVlIjogIjEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiY2F0ZWdvcnkiOiAxLAogICAgICAgICAgIm5hbWUiOiAiZG5zX2NhY2hlX3RpbWVvdXQiLAogICAgICAgICAgInZhbHVlIjogIjYwMDAwMDAwMCIKICAgICAgICB9CiAgICAgIF0KICAgIH0KICBdLAogICJhZHMiOiBbCiAgICAibWltZy4wYzFxMGwuY24iLAogICAgInd3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSIsCiAgICAid3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tIiwKICAgICJtYy51c2lobmJjcS5jbiIsCiAgICAibWcuZzFtbTNkLmNuIiwKICAgICJtc2NzLnN2YWV1emguY24iLAogICAgImNuenouaGh0dG0udG9wIiwKICAgICJ0cC52aW51eGhvbWUuY29tIiwKICAgICJjbnp6Lm1tc3RhdC5jb20iLAogICAgInd3dy5iYWlodWlsbHEuY29tIiwKICAgICJzMjMuY256ei5jb20iLAogICAgInozLmNuenouY29tIiwKICAgICJjLmNuenouY29tIiwKICAgICJzdGoudjF2by50b3AiLAogICAgInoxMi5jbnp6LmNvbSIsCiAgICAiaW1nLm1vc2Zsb3dlci5jbiIsCiAgICAidGlwcy5nYW1ldnZpcC5jb20iLAogICAgImVod2UueWhkdG5zLmNvbSIsCiAgICAieGRuLmNxcWMzLmNvbSIsCiAgICAid3d3LmppeHVua3l5LmNuIiwKICAgICJzcC5jaGVtYWNpZC5jbiIsCiAgICAiaG0uYmFpZHUuY29tIiwKICAgICJzOS5jbnp6LmNvbSIsCiAgICAiejYuY256ei5jb20iLAogICAgInVtLmNhdnVjLmNvbSIsCiAgICAibWF2Lm1hdnV6LmNvbSIsCiAgICAid29md2suYW9pZGYzLmNvbSIsCiAgICAiejUuY256ei5jb20iLAogICAgInhjLmh1YmVpamllc2hpa2ouY24iLAogICAgInRqLnRpYW53ZW5odS5jb20iLAogICAgInhnLmdhcnM1Ny5jbiIsCiAgICAiay5qaW54aXV6aGlsdi5jb20iLAogICAgImNkbi5ib290Y3NzLmNvbSIsCiAgICAicHBsLnh1bnpodW8xMjMuY29tIiwKICAgICJ4b21rLmppYW5nanVubWgudG9wIiwKICAgICJpbWcueHVuemh1bzEyMy5jb20iLAogICAgInoxLmNuenouY29tIiwKICAgICJzMTMuY256ei5jb20iLAogICAgInhnLmh1YXRhaXNhbmdhby5jbiIsCiAgICAiejcuY256ei5jb20iLAogICAgInhnLmh1YXRhaXNhbmdhby5jbiIsCiAgICAiejIuY256ei5jb20iLAogICAgInM5Ni5jbnp6LmNvbSIsCiAgICAicTExLmNuenouY29tIiwKICAgICJ0aHkuZGFjZWRzZmEuY24iLAogICAgInhnLndoc2Jwdy5jbiIsCiAgICAiczE5LmNuenouY29tIiwKICAgICJ6OC5jbnp6LmNvbSIsCiAgICAiczQuY256ei5jb20iLAogICAgImY1dy5hczEyZGYudG9wIiwKICAgICJhZTAxLmFsaWNkbi5jb20iLAogICAgInd3dy45MjQyNC5jbiIsCiAgICAiay53dWRlamlhLmNvbSIsCiAgICAidml2b3ZpcC5tbXN6eGMudG9wIiwKICAgICJxaXUueGl4aXFpdS5jb20iLAogICAgImNkbmpzLmhuZmVueHVuLmNvbSIsCiAgICAiY21zLnFkd2dodC5jb20iCiAgXSwKICAic3BpZGVyIjogImh0dHBzOi8vZ2l0ZWEuY29tL1RhbmdzYW45OTk5OS9Ob1dhci9yYXcvYnJhbmNoL21haW4vY3VzdG9tX3NwaWRlci50eHQiCn0=
\ No newline at end of file
......@@ -58,7 +58,9 @@ class jsoup:
ret = re.search('url\((.*?)\)',ret,re.M|re.S).groups()[0]
except:
pass
if ret and add_url and option in ['url','src','href','data-original','data-src']:
pd_list = 'url|src|href|data-original|data-src|data-play'.split('|')
# pd_list = 'url|src|href|data-original|data-src'.split('|')
if ret and add_url and option in pd_list:
if 'http' in ret:
ret = ret[ret.find('http'):]
else:
......@@ -91,6 +93,7 @@ class jsoup:
# 节点转字符串
# print(str(etree.tostring(result[0], pretty_print=True), 'utf-8'))
# res = [item for item in result.items()]
# print(res)
res = [item.outerHtml() for item in result.items()] # 这个才是对的!!str() item str(etree.tostring 统统错误
# res = [str(item) for item in result.items()]
# res = [str(etree.tostring(item, pretty_print=True), 'utf-8') for item in result]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册