当前位置: 首页 > 知识库问答 >
问题:

解析JavaScript与j汤

和飞翔
2023-03-14

在<code>HTML</code>页面中,我想选择<code>javascript</code>变量的值
下面是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>

我的目标是使用< code>jsoup从该页面读取变量< code>key的值。< br >可以使用< code>jsoup吗?如果是,那么怎么做?

共有2个答案

柯骏
2023-03-14

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

要获取文档,可以执行以下操作:

  • From a file:
    val input = File("my-document.html")
    val document = Jsoup.parse(input, "UTF-8")
    
    val document = Jsoup.connect("the/target/url")
        .userAgent("Mozilla")
        .get()
    

雷逸仙
2023-03-14

由于j汤不是javascript库,您有两种方法可以解决这个问题:

>

  • 优点:

    • 完全支持脚本

    缺点:

      < li >附加库/依赖项

    >

  • 优点:

    • 无需额外的库
    • 足以完成简单任务

    缺点:

    • 不如javascript库灵活

    下面是一个如何使用 jsoup 和一些“手动”代码获取密钥的示例:

    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
    }
    

    输出(使用您的网页部分):

    key="pqRjnA"
    pqRjnA
    

  •  类似资料:
    • 我正在使用以下命令解析包含HTML标记和javascript标记的HTML字符串 问题在于 Javascript 元素只包含在一行中。 另外,我已经尝试过 这适用于Javascript…但是超文本标记语言元素已经包含在没有结束标记的元素中。例如: 已被解析为 当我运行我的应用程序时,它不起作用。 我该如何解决这个问题?有没有办法使用JSOUP一起解析HTML和脚本? 注意:我刚刚在 JSOUP g

    • 如题,我用angular13写了两个module,其中一个moduleA使用了service,但并没有用providers注入到组件中,另有一个moduleB,当我先加载moduleA,在加载moduleB时,一切正常,但如果先加载moduleB,再加载moduleA时,就会报ERROR NullInjectorError: R3InjectorError(t)[j -> j -> j]: Nul

    • 本文向大家介绍JavaScript中Null与Undefined的区别解析,包括了JavaScript中Null与Undefined的区别解析的使用技巧和注意事项,需要的朋友参考一下 在JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有

    • 主要内容:什么是 JSON,在 JavaScript 中解析 JSON 数据,解析嵌套的 JSON 数据,将数据转换为 JSONJSON 全称为“JavaScript Object Notation”,是当前最流行的一种轻量级的数据交换格式,用来存储和传输数据,通常服务器端与客户端在进行交互时就是使用 JSON 格式的数据。 什么是 JSON JSON 是从 JavaScript 脚本中演变而来的,并且使用 JavaScript 中的语法来描述数据。与 XML 一样,JSON 也是一种基于文本的

    • 问题内容: 在页面中,我想选择一个变量的值。以下是页面的摘要。 我的目的是使用来从此页面读取变量的值。有可能吗?如果是,那怎么办? 问题答案: 由于jsoup不是javascript库,因此有两种方法可以解决此问题: A.使用JavaScript库 优点: 全面的Javascript支持 缺点: 附加的天秤/依赖项 B.使用Jsoup +手动解析 优点: 无需额外的库 足以完成简单的任务 缺点:

    • 问题内容: 我希望将我的网站转移到完全异步文档加载中,但是我不想使用请求处理的方法,因为1)我不想破坏链接,以及2)我想要一种更灵活的处理方式网站获取的URI。 我已经能够为我的网站构建一个简单的MVC,该MVC允许使用通用样式的网址(例如:http://ddrewdesign.com/blog/jquery-is-or-is-child-of- function )来制作正确的要求。 我的问题是