顺晟科技
2021-06-16 10:58:40
346
近期在采集一个网站的时候遇到一部分的页面是使用射流研究…代码来填充数据的,代码如下:
tr
td width='150px' class='success '案件级别:/td
td colspan='1 '
脚本
var s=GetDict标签([{ ' id ' : ' 4191 c 4842 b 3842749 DD 467655 f 90 B1 fa ',' isNewRecord':false,'备注' : '案件级别,' create date ' : ' 2016-11-29 15:19:34 ',' updateDate ' : ' 2016-11-29 15:19:34 ',' value':'1 ',' label': '一般事件,'类型:'case_grade ','描述' : '案件级别,' sort':1,' parentId':'0'},{ ' id ' : ' 5e 24 FD 12 f 3384 f 38 ab 10898013 Fe 25d 7 ',' isNewRecord':false,' CreateDate ' : ' 2016-11-29 15:19:35 ',' updateDate':'2016-11紧急事件,'类型:'case_grade ','描述' : '案件级别,' sort':2,' parentId':'0'},{ ' id ' : ' f 793 a 78 EB 44 c 405 b 9 FD 007359 df 09579 ',' isNewRecord':false,' CreateDate ' : ' 2016-11-29 15:19:36 ',' UpdateDate ' : ' 2016-29一般重复,'类型:'case_grade ','描述' : '案件级别,' sort':3,' parentId':'0'},{ ' id ' : ' 3f 2605 E3 F6 e 648 f 688 b 79 da 5 f 730 aedb ',' isNewRecord':false,' CreateDate ' : ' 2016-11-29 15:19:34 ',' UpdateDate ' 3360 ' 2016-11-29紧急重复,'类型:'case_grade ','描述' : '案件级别,' sort':4,' parentId':'0'}],1,",true);
文件。书写;
/script
/td
td width='150px' class='success '受理时间:/td
TD col span=' 1 ' 2018-08-05 13:39336022/TD
/tr
对上下文的源码进行分析,找到getDictLabel这个Java脚本语言的函数实现代码如下:
函数getDictLabel(数据、值、默认值){
for(var I=0;idata . lenhei){
var row=data[I];
if (row.value==value){
返回row.label
}
}
返回defaultValue
}
通过一番了解,可以获取到任务描述标签中间的脚本对应的射流研究…代码,通过执行射流研究…代码获取对应的数据。找到了一个计算机编程语言的库pyexecjs可以实现,可以通过如下代码进行安装:
点安装PyExecJS
核心代码如下:
导入execjs
def exec_js_function(js):
# 编译射流研究…代码
ctx=execjs.compile(' ')
函数getDictLabel(数据、值、默认值){
for(var I=0;我数据。长度;i ){
var row=data[I];
if (row.value==value){
返回row.label
}
}
返回defaultValue
}
''')
# 删除一些无关的字符
jscode=js。替换('文档。“写;”, '').替换(',true);', ')').替换(' var s=','')
# 执行代码
返回ctx.eval(jscode)
08
1972-02
02
2022-09
16
2021-06
16
2021-06
16
2021-06
16
2021-06