用jsoupparsingJavaScript
在一个HTML
页面中,我想select一个javascript
variables的值。 以下是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>
我的目标是使用jsoup
从这个页面读取variableskey
的值。 用jsoup
吗? 如果是的话那怎么样?
由于jsoup不是一个JavaScript库你有两种方法来解决这个问题:
A.使用JavaScript库
-
优点:
- 全面的Javascript支持
-
缺点:
- 额外的图书馆/依赖
B.使用Jsoup +手动parsing
-
优点:
- 不需要额外的库
- 足够简单的任务
-
缺点:
- 不如一个JavaScript库灵活
下面是一个例子,如何使用jsoupand获得一些“手动”代码的key
:
Document doc = ... Element script = doc.select("script").first(); // Get the script part Pattern p = Pattern.compile("(?is)key=\"(.+?)\""); // Regex for the value of the key Matcher m = p.matcher(script.html()); // you have to use html here and NOT text! Text will drop the 'key' part while( m.find() ) { System.out.println(m.group()); // the whole key ('key = value') System.out.println(m.group(1)); // value only }
输出(使用你的HTML部分):
key="pqRjnA" pqRjnA