java解析html中的js代码
时间: 2024-09-14 21:10:55 浏览: 44
在Java中解析HTML并提取其中的JavaScript代码,通常需要结合HTML解析库(如Jsoup、HTMLParser等)和JavaScript引擎(比如Rhino或Nashorn)。以下是使用Jsoup简单示例:
```java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HtmlWithJsExample {
public static void main(String[] args) throws Exception {
// HTML字符串
String html = "<html><head><script>alert('Hello, JavaScript!');</script></head>" +
"<body><a onclick='javascript:window.location.href=" + "'https://example.com"' + "></a></body></html>";
// 使用Jsoup解析HTML
Document doc = Jsoup.parse(html);
// 获取<script>标签内的所有内容
Elements scripts = doc.select("script");
for (Element script : scripts) {
System.out.println("JavaScript code: " + script.text());
}
// 获取onclick属性中的JavaScript
Elements links = doc.select("a[onclick]");
for (Element link : links) {
String jsCode = link.attr("onclick").replaceAll("'", "\\'"); // 解决JS字符串中的单引号问题
System.out.println("JavaScript from onclick attribute: " + jsCode);
}
}
}
```
这个例子展示了如何获取`<script>`标签和包含`onclick`属性的`<a>`标签中的JavaScript代码。注意,对于JavaScript表达式,可能需要额外处理转义字符。
阅读全文