使用jsoup解析JavaScript
在使用jsoup解析JavaScript,java,javascript,html,jsoup,Java,Javascript,Html,Jsoup,在HTML页面中,我想选择javascript变量的值。下面是HTML页面的片段 <input id="hidval" value="" type="hidden"> <form method="post" style="padding: 0px;margin: 0px;" name="profile" autocomplete="off"> <input name="pqRjnA" id="pqRjnA" value="" type="hidden"> &
HTML
页面中,我想选择javascript
变量的值。下面是HTML
页面的片段
<input id="hidval" value="" type="hidden">
<form method="post" style="padding: 0px;margin: 0px;" name="profile" autocomplete="off">
<input name="pqRjnA" id="pqRjnA" value="" type="hidden">
<script type="text/javascript">
key="pqRjnA";
</script>
key=“pqRjnA”;
我的目标是使用
jsoup
从本页读取变量key
的值。是否可以使用jsoup
?如果是,那么如何解决呢?既然jsoup不是javascript库,您有两种方法来解决这个问题:
A.使用javascript库
- Pro:
key="pqRjnA" pqRjnA
- 完全支持Javascript
- Con:
key="pqRjnA" pqRjnA
- 附加/依赖项
- Pro:
key="pqRjnA" pqRjnA
- 不需要额外的库
- 足够完成简单的任务了
- Con:
key="pqRjnA" pqRjnA
- 不像javascript库那样灵活
键的示例:
输出(使用html部件):
key="pqRjnA"
pqRjnA
您必须获取脚本内容,然后手动解析,或者查看是否可以使用Rhino从已执行的JS片段中获取上下文。@Reimeus:不可以。可以在其他地方进行初始化,这里将一些值分配给变量key
。是的。。。我已经在遵循第二个选项,即使用Jsoup+手动解析
ThankxHey,Jsoup+手动解析
是非常好的解决方案,但在使用js变量作为数组时中断<代码>例如:keyArray=[1,2,3]
你能给我一个解决方案吗?你可以用这个正则表达式来代替:(?s)(keyArray)\\s???=\\s\\\\[(.*?\\\]
。如果定义了两个组:组1=变量名,组2=值(那些在[]
中的组)。如果我有类似于abc.xyz.init({requiredJsonObjectAsAnArgument})的东西会怎么样代码>内部脚本标记,我只想解析requiredJsonObjectAsAnArgument。您能为我推荐适用于这种情况的正则表达式吗?请尝试(?s)\\\.init\(\\{(+?)\\\\\\\\)代码>-组#1包含所需的JsonObjectAsanargument
。