Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wchjxyzj
dr_py
提交
e8355781
D
dr_py
项目概览
wchjxyzj
/
dr_py
与 Fork 源项目一致
Fork自
晚风拂柳颜 / dr_py
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dr_py
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e8355781
编写于
9月 29, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加自动过搜索验证
上级
39d1fab5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
57 addition
and
13 deletion
+57
-13
txt/muban/drpy模板.js
txt/muban/drpy模板.js
+57
-13
未找到文件。
txt/muban/drpy模板.js
浏览文件 @
e8355781
...
...
@@ -5,18 +5,6 @@ import ch from './cheerio.min.js';
// var rule = Object.assign(模板.首图2,{
// host: 'https://www.zbkk.net',
// });
function
readFile
(
filePath
){
filePath
=
filePath
||
'
./uri.min.js
'
;
var
fd
=
os
.
open
(
filePath
);
var
buffer
=
new
ArrayBuffer
(
1024
);
var
len
=
os
.
read
(
fd
,
buffer
,
0
,
1024
);
console
.
log
(
len
);
let
text
=
String
.
fromCharCode
.
apply
(
null
,
new
Uint8Array
(
buffer
));
console
.
log
(
text
);
return
text
}
const
key
=
'
drpy_zbk
'
;
let
rule
=
{
...
...
@@ -72,6 +60,8 @@ const RULE_CK = 'cookie'; // 源cookie的key值
const
KEY
=
typeof
(
key
)
!==
'
undefined
'
&&
key
?
key
:
'
drpy_
'
+
rule
.
title
;
// 源的唯一标识
const
CATE_EXCLUDE
=
'
首页|留言|APP|下载|资讯|新闻|动态
'
;
const
TAB_EXCLUDE
=
'
猜你|喜欢|APP|下载|剧情|热播
'
;
const
OCR_RETRY
=
3
;
//ocr验证重试次数
const
OCR_API
=
'
http://dm.mudery.com:10000
'
;
//ocr在线识别接口
var
MY_URL
;
// 全局注入变量,pd函数需要
/** 处理一下 rule规则关键字段没传递的情况 **/
...
...
@@ -84,13 +74,62 @@ rule.searchUrl = rule.searchUrl||'';
/*** 后台需要实现的java方法并注入到js中 ***/
/**
* 读取本地文件->应用程序目录
* @param filePath
* @returns {string}
*/
function
readFile
(
filePath
){
filePath
=
filePath
||
'
./uri.min.js
'
;
var
fd
=
os
.
open
(
filePath
);
var
buffer
=
new
ArrayBuffer
(
1024
);
var
len
=
os
.
read
(
fd
,
buffer
,
0
,
1024
);
console
.
log
(
len
);
let
text
=
String
.
fromCharCode
.
apply
(
null
,
new
Uint8Array
(
buffer
));
console
.
log
(
text
);
return
text
}
/**
* 验证码识别逻辑,需要java实现(js没有bytes类型,无法调用后端的传递图片二进制获取验证码文本的接口)
* @type {{api: string, classification: (function(*=): string)}}
*/
var
OcrApi
=
{
api
:
OCR_API
,
classification
:
function
(
img
){
// img是byte类型,这里不方便搞啊
let
code
=
''
;
try
{
code
=
request
(
this
.
api
,{
data
:
img
,
headers
:{
'
user-agent
'
:
PC_UA
},
'
method
'
:
'
POST
'
});
}
catch
(
e
)
{}
return
code
}
};
/**
* 验证码识别,暂未实现
* @param url 验证码图片链接
* @returns {string} 验证成功后的cookie
*/
function
verifyCode
(
url
){
let
cnt
=
0
;
let
host
=
getHome
(
url
);
let
cookie
=
''
;
while
(
cnt
<
OCR_RETRY
){
try
{
// let obj = {headers:headers,timeout:timeout};
let
img
=
request
(
`
${
host
}
/index.php/verify/index.html`
);
let
code
=
OcrApi
.
classification
(
img
);
console
.
log
(
`第
${
cnt
+
1
}
次验证码识别结果:
${
code
}
`
);
let
html
=
request
(
`
${
host
}
/index.php/ajax/verify_check?type=search&verify=
${
code
}
`
,{
'
method
'
:
'
POST
'
});
html
=
JSON
.
parse
(
html
);
if
(
html
.
msg
===
'
ok
'
){
cookie
=
''
;
return
cookie
// 需要返回cookie
}
}
catch
(
e
)
{
console
.
log
(
`第
${
cnt
+
1
}
次验证码提交失败`
)
}
cnt
+=
1
}
return
cookie
}
...
...
@@ -522,7 +561,12 @@ function searchParse(searchObj) {
if
(
html
)
{
if
(
/系统安全验证|输入验证码/
.
test
(
html
)){
let
cookie
=
verifyCode
(
MY_URL
);
setItem
(
RULE_CK
,
cookie
);
if
(
cookie
){
console
.
log
(
`本次成功过验证,cookie:
${
cookie
}
`
);
setItem
(
RULE_CK
,
cookie
);
}
else
{
console
.
log
(
`本次自动过搜索验证失败,cookie:
${
cookie
}
`
);
}
// obj.headers['Cookie'] = cookie;
html
=
getHtml
(
MY_URL
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录