Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
言程序plus
dr_py
提交
38417287
dr_py
项目概览
言程序plus
/
dr_py
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
dr_py
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
38417287
编写于
11月 17, 2022
作者:
H
hjdhnx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化了pd系列函数
上级
db1394dc
变更
5
展开全部
隐藏空白更改
内联
并排
Showing
5 changed file
with
2114 addition
and
77 deletion
+2114
-77
js/version.txt
js/version.txt
+1
-1
libs/drpy2-2838.js
libs/drpy2-2838.js
+2096
-0
libs/drpy2.js
libs/drpy2.js
+11
-70
libs/drpy2.min.js
libs/drpy2.min.js
+1
-1
utils/htmlParser.py
utils/htmlParser.py
+5
-5
未找到文件。
js/version.txt
浏览文件 @
38417287
3.7.5beta10
\ No newline at end of file
3.7.5beta9
\ No newline at end of file
libs/drpy2-2838.js
0 → 100644
浏览文件 @
38417287
此差异已折叠。
点击以展开。
libs/drpy2.js
浏览文件 @
38417287
...
...
@@ -425,47 +425,7 @@ var urljoin2 = urljoin;
const
defaultParser
=
{
pdfh
:
pdfh
,
pdfa
:
pdfa
,
parseHikerToJq
(
parse
,
first
){
// 海阔解析表达式转原生表达式,自动补eq,如果传了first就最后一个也取eq(0)
first
=
first
||
false
;
if
(
parse
.
includes
(
'
&&
'
)){
parse
=
parse
.
split
(
'
&&
'
);
//带&&的重新拼接
let
new_parses
=
[];
// 构造新的解析表达式列表
parse
.
forEach
((
it
,
i
)
=>
{
let
ps
=
it
.
split
(
'
'
).
slice
(
-
1
)[
0
];
// 如果分割&&后带空格就取最后一个元素
if
(
!
NOADD_INDEX
.
test
(
ps
)){
if
(
!
first
&&
i
>=
parse
.
length
-
1
){
new_parses
.
push
(
it
);
}
else
{
new_parses
.
push
(
`
${
it
}
:eq(0)`
);
}
}
else
{
new_parses
.
push
(
it
);
}
});
parse
=
new_parses
.
join
(
'
'
);
}
else
{
let
ps
=
parse
.
split
(
'
'
).
slice
(
-
1
)[
0
];
// 如果带空格就取最后一个元素
if
(
!
NOADD_INDEX
.
test
(
ps
)
&&
first
){
parse
=
`
${
parse
}
:eq(0)`
;
}
}
return
parse
;
},
pd
(
html
,
parse
,
uri
){
let
ret
=
this
.
pdfh
(
html
,
parse
);
if
(
typeof
(
uri
)
===
'
undefined
'
||!
uri
){
uri
=
''
;
}
if
(
DOM_CHECK_ATTR
.
test
(
parse
)){
if
(
/http/
.
test
(
ret
)){
ret
=
ret
.
substr
(
ret
.
indexOf
(
'
http
'
));
}
else
{
ret
=
urljoin
(
MY_URL
,
ret
)
}
}
return
ret
},
pd
:
pd
,
};
...
...
@@ -599,36 +559,13 @@ const parseTags = {
},
},
jq
:{
pdfh
(
html
,
parse
,
base_url
)
{
pdfh
(
html
,
parse
)
{
if
(
!
html
||!
parse
||
!
parse
.
trim
())
{
return
''
}
parse
=
parse
.
trim
();
let
reparse
=
[
'
body&&Text
'
,
'
Text
'
,
'
body&&Html
'
,
'
Html
'
];
if
(
reparse
.
includes
(
reparse
)){
return
defaultParser
.
pdfh
(
html
,
parse
)
}
let
option
=
''
;
if
(
parse
.
includes
(
'
&&
'
)){
option
=
parse
.
split
(
'
&&
'
).
slice
(
-
1
)[
0
];
parse
=
parse
.
split
(
'
&&
'
).
slice
(
0
,
-
1
).
join
(
'
&&
'
);
}
parse
=
defaultParser
.
parseHikerToJq
(
parse
,
true
);
let
result
=
defaultParser
.
pdfh
(
html
,
parse
,
option
);
if
(
option
&&
/style/
.
test
(
option
.
toLowerCase
())
&&
/url
\(
/
.
test
(
result
)){
try
{
result
=
result
.
match
(
/url
\((
.*
?)\)
/
)[
1
];
// print(result);
}
catch
(
e
)
{}
}
if
(
result
&&
base_url
&&
option
&&
DOM_CHECK_ATTR
.
test
(
option
))
{
if
(
/http/
.
test
(
result
))
{
result
=
result
.
substr
(
result
.
indexOf
(
'
http
'
));
}
else
{
result
=
urljoin
(
base_url
,
result
)
}
// print(result);
}
let
result
=
defaultParser
.
pdfh
(
html
,
parse
);
// print(`pdfh解析${parse}=>${result}`);
return
result
;
},
pdfa
(
html
,
parse
)
{
...
...
@@ -636,14 +573,18 @@ const parseTags = {
return
[];
}
parse
=
parse
.
trim
();
parse
=
defaultParser
.
parseHikerToJq
(
parse
)
let
result
=
defaultParser
.
pdfa
(
html
,
parse
);
// print(result);
print
(
`pdfa解析
${
parse
}
=>
${
result
.
length
}
`
);
return
result
;
},
pd
(
html
,
parse
,
uri
){
return
parseTags
.
jq
.
pdfh
(
html
,
parse
,
MY_URL
);
pd
(
html
,
parse
,
base_url
){
if
(
!
html
||!
parse
||
!
parse
.
trim
())
{
return
''
}
parse
=
parse
.
trim
();
base_url
=
base_url
||
MY_URL
;
return
defaultParser
.
pd
(
html
,
parse
,
base_url
);
},
},
getParse
(
p0
){
//非js开头的情况自动获取解析标签
...
...
libs/drpy2.min.js
浏览文件 @
38417287
此差异已折叠。
点击以展开。
utils/htmlParser.py
浏览文件 @
38417287
...
...
@@ -160,7 +160,7 @@ class jsoup:
res
=
[
item
.
outerHtml
()
for
item
in
ret
.
items
()]
return
res
def
pdfh
(
self
,
html
,
parse
:
str
,
add_url
=
False
,
base_url
:
str
=
''
):
def
pdfh
(
self
,
html
,
parse
:
str
,
base_url
:
str
=
''
):
if
not
all
([
html
,
parse
]):
return
''
if
PARSE_CACHE
:
...
...
@@ -204,21 +204,21 @@ class jsoup:
except
:
pass
if
ret
and
add
_url
:
if
ret
and
base
_url
:
need_add
=
re
.
search
(
URLJOIN_ATTR
,
option
,
re
.
M
|
re
.
I
)
if
need_add
:
if
'http'
in
ret
:
ret
=
ret
[
ret
.
find
(
'http'
):]
else
:
if
not
base_url
:
base_url
=
self
.
MY_URL
ret
=
urljoin
(
base_url
,
ret
)
else
:
ret
=
ret
.
outerHtml
()
return
ret
def
pd
(
self
,
html
,
parse
:
str
,
base_url
:
str
=
''
):
return
self
.
pdfh
(
html
,
parse
,
True
,
base_url
)
if
not
base_url
:
base_url
=
self
.
MY_URL
return
self
.
pdfh
(
html
,
parse
,
base_url
)
def
pq
(
self
,
html
:
str
):
return
pq
(
html
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录