使用jsoup解析JavaScript
Parse JavaScript with 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">
<script type="text/javascript">
key="pqRjnA";
</script>
我的目标是使用jsoup
从该页面读取变量key
的值jsoup
可能吗?如果是,那么怎么做?
由于jsoup不是javascript库,因此有两种方法可以解决此问题:
A。使用javascript库
-
Pro:
- 完全支持Javascript
-
Con:
- 其他库/依赖项
B。使用J汤+手动解析
-
Pro:
- 不需要额外的库
- 足够做简单的任务
-
Con:
- 不如javascript库灵活
以下是如何使用jsoup和一些"手动"代码获得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
Kotlin问题被标记为重复,并指向此问题
下面是我如何与Kotlin合作的:
val (key, value) = document
.select("script")
.map(Element::data)
.first { "key" in it } // OR single { "key" in it }
.split("=")
.map(String::trim)
val pureValue = value.replace(Regex("""["';]"""), "")
println("$key::$pureValue") // key::pqRjnA
另一个版本:
val (key, value) = document
.select("script")
.first { Regex("""key's*='s*["'].*["'];""") in it.data() }
.data()
.split("=")
.map { it.replace(Regex("""['s"';]"""), "") }
println("$key::$value") // key::pqRjnA
脚注
要获得文档,您可以这样做:
- 从文件:
val input = File("my-document.html") val document = Jsoup.parse(input, "UTF-8")
- 从服务器:
val document = Jsoup.connect("the/target/url") .userAgent("Mozilla") .get()
相关文章:
- 使用JavaScript解析HTML
- 使用Javascript解析网页(涉及ajax和jquery)
- 获取JSON并使用Javascript解析为字符串
- Android和JavaScript解析API之间不一致
- 如何使用JavaScript解析输入文本中给定的数据
- 在 html 中使用 javascript 解析 xml
- 用javascript解析某些字符串
- Javascript解析器本身是用类似ESPRIMA的Javascript编写的,这是如何工作的?然后谁解析ESPRIM
- JavaScript:解析奇数字符串以获得必要的信息(RegEx)
- 如何使用javascript解析JSON文件
- 通过javascript解析从按钮到输入的值.(嘟嘟的弹出窗口)
- 你会如何使用javascript解析它
- 通过 JavaScript 解析 t.co URL
- 使用 JavaScript 解析 json 失败
- 使用 javascript 解析和显示 HTML 音频当前时间
- PHP+Javascript解析这两个响应
- 将javascript解析为php对象
- AJAX/javascript:解析包含数组的JSON
- HTML5嵌套数据-*用Javascript解析的属性don't返回嵌套对象
- 保存到通过Javascript解析的问题