提交 c371401f 编写于 作者: H hjdhnx

改个版本号,改个哔哩解析

上级 30ae6278
无法预览此类型文件
......@@ -11,6 +11,7 @@ from utils.log import logger
from utils.encode import OcrApi,base64ToImage
from controllers.service import storage_service
from utils.pyctx import py_ctx,getPreJs,runJScode,JsObjectWrapper,PyJsString,parseText,jsoup,time
from utils.env import get_env
import base64
parse = Blueprint("parse", __name__)
......@@ -63,6 +64,7 @@ def image(text:str):
def parse_home(filename):
url = getParmas('url')
# http://localhost:5705/parse/api/%E6%97%A0%E5%90%8D.js?url=https://www.iqiyi.com/v_ik3832z0go.html
# http://localhost:5705/parse/api/哔哩.js?url=https://www.bilibili.com/bangumi/play/ep704873
if not url or not url.startswith('http'):
return R.failed(f'url必填!{url},且必须是http开头')
base_path = 'jiexi'
......@@ -73,12 +75,14 @@ def parse_home(filename):
logger.info(f'开始尝试通过{filename}解析:{url}')
jsp = jsoup(url)
env = get_env()
py_ctx.update({
'vipUrl': url,
'fetch_params': {'headers': {'Referer':url}, 'timeout': 10, 'encoding': 'utf-8'},
'jsp':jsp,
'重定向':重定向,
'toast':toast,
'env':env,
'image':image,
'print':print,
'log':logger.info,
......
// print(env);
// vipUrl = 'https://www.bilibili.com/bangumi/play/ep704873';
fetch_params.headers = {
'User-Agent':PC_UA,
"Referer": "https://www.bilibili.com",
"Cookie":env.bili_cookie||''
};
let appkey = env.appkey||'';
let access_key = env.access_key||'';
// print(fetch_params);
function getEpUrl(ssUrl){
let html = request(ssUrl);
let short_link = html.match(/short_link(.*?),/)[1];
short_link = short_link.split(':').slice(1,-1).join('"').split('"')[1];
let epUrl = unescape(short_link);
return epUrl
}
function getCidEid(vipUrl){
// print(vipUrl);
let url = vipUrl.split('?')[0];
// print(url);
if(url.endsWith('/')){
url = url.slice(0,-1);
}
if(url.includes('bilibili.com/video/')){
let r = request(vipUrl);
try{
let mtext = r.match(/window\.__INITIAL_STATE__=(.*?);\(function/)[1];
mtext = JSON.parse(mtext);
let avid = mtext['aid'];
let bvid = mtext['bvid'];
let cid = mtext['videoData']['cid'];
return [cid,avid,bvid]
} catch (e) {
return null
}
}else if(url.includes('/ep')){
let epid = url.split('ep')[1];
let data_url = 'https://api.bilibili.com/pgc/view/web/season?ep_id='+epid;
let r = JSON.parse(request(data_url));
if(r.code === 0){
let episodes = r['result']['episodes'];
let furl = url.replace('https://m.bilibili.com', 'https://www.bilibili.com');
let now_ep = episodes.filter(function (it){
return [it['short_link'], it['share_url'],it['link']].includes(furl)
})[0];
let avid = now_ep['aid'];
let cid = now_ep['cid'];
return [cid,avid,null];
}else{
return null
}
}else if(url.includes('/ss')){
let epUrl = getEpUrl(vipUrl);
return getCid(epUrl)
}else{
return null
}
}
if(!/bilibili/.test(vipUrl)){
realUrl = vipUrl;
}else {
try {
// print(vipUrl);
let ids = getCidEid(vipUrl);
if (Array.isArray(ids)) {
print(ids);
let cid = ids[0];
let avid = ids[1];
let rurl = "https://api.bilibili.com/x/player/playurl?avid=" + avid + "&cid=" + cid + "&qn=120&type=&128=128&otype=json&fnver=&fourk=1&mid=&appkey=" + appkey + "&access_key=" + access_key;
print(rurl);
try {
let r = JSON.parse(request(rurl));
print(r);
let purl = r['data']['durl'][0]['url'];
print('purl:' + purl);
realUrl = purl;
} catch (e) {
print(e.message);
realUrl = vipUrl;
}
} else {
realUrl = vipUrl;
}
} catch (e) {
print(e.message);
}
}
\ No newline at end of file
// let jxUrl = 'http://api.ckflv.cn/?url=';
log(env);
let jxUrl = 'https://k.json.icu/home/api?type=ys&uid=12406929&key=adgouwyCGIRSTUV046&url=';
fetch_params.headers.Referer = jxUrl;
try {
......
var rule = {
title:'AB影院',
host:'https://abu22.com/',
url:'vodtype/fyclass-fypage.html',
searchUrl:'/search.php;**',
headers:{ 'User-Agent':'PC_UA',},
class_name:'电影&剧集&综艺&动漫&伦理',
class_url:'1&2&4&3&40',
推荐:'.stui-vodlist__item;*;*;*;*',
一级:'.stui-vodlist__item;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级:{"title":"h3&&Text;.stui-content__detail p:eq(0)&&Text","img":".lazyload&&data-original","desc":";;;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text","content":".stui-content__detail p:eq(5)&&Text","tabs":".stui-pannel__head.clearfix&&h3","lists":".stui-content__playlist.clearfix:eq(#id) a"},
搜索:'js:let url=input.split(";")[0];let d=[];let body={searchword:input.split(";")[1]};body="searchword="+input.split(";")[1];fetch_params.body=body;let html=post(url,fetch_params);let pdfa=jsp.pdfa;let pdfh=jsp.pdfh;let pd=jsp.pd;let lists=pdfa(html,"ul.stui-vodlist__media&&li");lists.forEach(function(it){d.push({title:pdfh(it,".title&&Text"),url:pd(it,"a&&href"),desc:pdfh(html,".pic-text&&Text"),pic_url:pd(html,".lazyload&&data-original")})});setResult(d);',
}
\ No newline at end of file
3.9.30beta7
\ No newline at end of file
3.9.31
\ No newline at end of file
var rule={
title:'厂长资源',
// host:'https://www.c-zzy.com',
host:'https://czspp.com',
url:'/fyclass/page/fypage',
searchUrl:'/xssearch?q=**&f=_all&p=fypage',
searchable:2,//是否启用全局搜索,
quickSearch:1,//是否启用快速搜索,
filterable:0,//是否启用分类筛选,
searchable:2,
quickSearch:1,
filterable:0,
headers:{'User-Agent':'PC_UA', },
play_parse:true,
lazy:'',
limit:6,
class_name:'豆瓣电影Top250&最新电影&电视剧&国产剧&美剧&韩剧&番剧&动漫',
class_url:'dbtop250&zuixindianying&dsj&gcj&meijutt&hanjutv&fanju&dm',
推荐:'.bt_img;ul&&li;*;*;*;*',
double:true,
一级:'.bt_img&&ul&&li;h3.dytit&&Text;img.lazy&&data-original;.jidi&&Text;a&&href',
二级:{"title":"h1&&Text;.moviedteail_list li&&a&&Text","img":"div.dyimg img&&src","desc":".moviedteail_list li:eq(3) a&&Text;.moviedteail_list li:eq(2) a&&Text;.moviedteail_list li:eq(1) a&&Text;.moviedteail_list li:eq(7) a&&Text;.moviedteail_list li:eq(5) a&&Text","content":".yp_context&&Text","tabs":".mi_paly_box&&span","lists":".paly_list_btn:eq(#id) a"},
二级:{"title":"h1&&Text;.moviedteail_list li&&a&&Text","img":"div.dyimg img&&src","desc":".moviedteail_list li:eq(3) a&&Text;.moviedteail_list li:eq(2) a&&Text;.moviedteail_list li:eq(1) a&&Text;.moviedteail_list li:eq(7) a&&Text;.moviedteail_list li:eq(5) a&&Text","content":".yp_context&&Text","tabs":".mi_paly_box span","lists":".paly_list_btn:eq(#id) a"},
搜索:'.search_list&&ul&&li;*;*;*;*',
// 预处理:'rule_fetch_params.headers.Cookie = "Hm_lvt_d06dda04a24e89e1117ee1455e217c30=1669008856; 6de728358f84bf15ea9bb771c18f37fb=b4a901c371f729a828c31d9d78def299; myannoun=1; Hm_lvt_c08e84f2c697dc9d0af77ff0dbfb3d6d=1669356917; Hm_lpvt_c08e84f2c697dc9d0af77ff0dbfb3d6d=1669357024; Hm_lpvt_d06dda04a24e89e1117ee1455e217c30=1669357024"',
预处理:'',
预处理:'rule_fetch_params.headers.Cookie="68148872828e9f4d64e7a296f6c6b6d7=5429da9a54375db451f7f9e4f16ce0ea";let new_host="https://czspp.com";let new_html=request(new_host);if(/正在进行人机识别/.test(new_html)){let new_src=pd(new_html,"script&&src",new_host);log(new_src);let hhtml=request(new_src,{withHeaders:true});let json=JSON.parse(hhtml);let html=json.body;let key=html.match(new RegExp(\'var key="(.*?)"\'))[1];let avalue=html.match(new RegExp(\'value="(.*?)"\'))[1];let c="";for(let i=0;i<avalue.length;i++){let a=avalue[i];let b=a.charCodeAt();c+=b}let value=md5(c);log(value);let yz_url="https://czspp.com/a20be899_96a6_40b2_88ba_32f1f75f1552_yanzheng_ip.php?type=96c4e20a0e951f471d32dae103e83881&key="+key+"&value="+value;log(yz_url);hhtml=request(yz_url,{withHeaders:true});json=JSON.parse(hhtml);let setCk=Object.keys(json).find(it=>it.toLowerCase()==="set-cookie");let cookie=setCk?json[setCk].split(";")[0]:"";log("cookie:"+cookie);rule_fetch_params.headers.Cookie=cookie;setItem(RULE_CK,cookie)}',
}
\ No newline at end of file
......@@ -3,8 +3,8 @@ var rule = {
host:'http://www.2kuke.com',
// homeUrl:'/',
url:'/list/fyclass_fypage.html',
//searchUrl:'/vodsearch/**----------fypage---.html',
searchable:0,//是否启用全局搜索,
searchUrl:'/search.php#searchword=**;post',
searchable:2,//是否启用全局搜索,
quickSearch:0,//是否启用快速搜索,
filterable:0,//是否启用分类筛选,
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
......@@ -21,5 +21,6 @@ var rule = {
double:true, // 推荐内容是否双层定位
一级:'.stui-vodlist.clearfix li;a&&title;a&&data-original;.pic-text&&Text;a&&href',
二级:{"title":"h1.line1&&Text;.stui-content__detail p:eq(0)&&Text","img":".lazyload&&data-original","desc":";;;.stui-content__detail p:eq(1)&&Text;.stui-content__detail p:eq(2)&&Text","content":".stui-content__detail p:eq(-1)&&Text","tabs":".nav.nav-tabs.pull-right&&li","lists":".stui-content__playlist:eq(#id) li"},
搜索:'ul.stui-vodlist__media&&li;*;*;*;*'
}
var rule={
var rule = {
title:'饭团',
模板:'首图',
host:'https://fositv.com',
url:'/vod____type/fyclass-fypage.html',
url:'/vod_____type/fyclass-fypage.html',
searchUrl:'/vod_____search/-------------.html?wd=**&submit=',
searchable:2,
quickSearch:0,
filterable:0,
headers:{'User-Agent':'MOBILE_UA',},
class_name:'电影&电视剧&综艺&动漫&记录',
class_url:'1&2&3&4&5',
推荐:'.myui-vodlist__thumb.lazyload;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
一级:'.myui-vodlist__thumb;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
二级:{"title":".text-fff&&Text;.myui-player__data p&&Text","img":"","desc":".myui-player__data p&&Text;;;.text-collapse p:eq(1)&&Text;.text-collapse p:eq(0)&&Text","content":".data&&Text","tabs":".nav-tabs:eq(0) li","lists":".myui-content__list:eq(#id) li"},
searchUrl:'/vod_search/-------------.html?wd=**',
搜索:'.myui-vodlist__thumb;a&&title;.lazyload&&data-original;.pic-text&&Text;a&&href',
}
\ No newline at end of file
var rule = {
title:'麦豆com',
host:'https://www.mdoutv.com',
// homeUrl:'/',
url:'/movie_bt_series/fyclass/page/fypage',
searchUrl:'/search/**/page/fypage',
searchable:2,//是否启用全局搜索,
quickSearch:0,//是否启用快速搜索,
filterable:0,//是否启用分类筛选,
headers:{//网站的请求头,完整支持所有的,常带ua和cookies
'User-Agent':'MOBILE_UA',
// "Cookie": "searchneed=ok"
},
class_parse:'.submenu_mi&&li;a&&Text;a&&href;.*/(.*)',
//class_name:'国产&港台&欧美&韩剧&日剧&泰剧&剧集&电影&动漫&综艺',
//class_url:'guocanju&gangtai&en&hanju&riju&taiju&tv&movie&ac&zongyi',
searchable:2,
quickSearch:0,
filterable:0,
headers:{'User-Agent':'MOBILE_UA',},
class_name:'国产&港台&欧美&韩剧&日剧&泰剧&剧集&电影&动漫&综艺',
class_url:'guocanju&gangtai&en&hanju&riju&taiju&tv&movie&ac&zongyi',
cate_exclude:'留言|幸运码|更多播放线路|蚂蚁导航|迷历史',
play_parse:true,
lazy:'',
limit:6,
推荐:'body&&.mi_btcon;ul&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
double:true, // 推荐内容是否双层定位
推荐:'.newindex&&ul&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
一级:'.mrb&&ul&&li;img&&alt;img&&data-original;.jidi&&Text;a&&href',
二级:{"title":"h1&&Text;.moviedteail_list&&li:eq(2)&&Text;","img":".dyxingq&&img&&src","desc":".moviedteail_list&&li:eq(3)&&Text;.moviedteail_list&&li:eq(4)&&Text","content":".yp_context&&Text","tabs":".fr&&a","lists":".paly_list_btn:eq(#id) a"},
搜索:'.search_list&&ul&&li;h3&&Text;img&&data-original;.hdinfo&&span&&Text;a&&href',
......
......@@ -49,6 +49,9 @@
[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/12/12
- [X] 增加哔哩自建解析和对应的环境变量:appkey,access_key (手机端抓包搜索可得)
- [X] 修复部分源
###### 2022/12/6
- [X] 增加外部更新环境变量的方法,详情参考 /py/外部更新环境变量.py,可以自行用js等其他语言实现调用
###### 2022/12/4
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册