用jsoupparsingJavaScript

在一个HTML页面中,我想select一个javascriptvariables的值。 以下是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