📅  最后修改于: 2023-12-03 15:06:31.598000             🧑  作者: Mango
在 JavaScript 中,通过获取元素的 innerHTML 属性可以获取到所需的文本。但是有些情况下,仅仅获取元素的 innerHTML 属性会返回一些标签和其他不必要的信息。为了避免这种情况,可以使用标头标记(header tag)来表示所需要的文本。在复制文本时,只需获取指定标记内的文本即可。本篇文章将介绍如何使用 Java 从 JavaScript 中的标头标记复制文本。
首先,需要使用 Java 提供的 HttpClient 类获取相应的网页代码。具体实现代码可参考以下示例:
import java.net.URI;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.fluent.Response;
import org.apache.http.util.EntityUtils;
public class HtmlFetcher {
public static String getHtml(String url) throws Exception {
URI uri = new URI(url);
Request request = Request.Get(uri);
Response response = request.execute();
String html = EntityUtils.toString(response.returnContent().asStream());
return html;
}
}
接下来,需要使用 Jsoup 库操作获取到的 HTML 代码,找到所需的元素并获取其中的文本。具体实现代码如下:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HtmlParser {
public static String parse(String html, String tag) {
Document doc = Jsoup.parse(html);
Elements elements = doc.select(tag);
Element element = elements.first();
return element.text();
}
}
其中,tag 为所需的标头标记,例如 <h1>
或 <h2>
等。parse 方法将返回第一个使用指定标头标记的元素的文本内容。如果要获取多个元素的文本内容,则需要对 elements 集合进行遍历。
假设需要获取某个网页中第一个 <h1>
标签内的文本内容,示例代码如下:
public class App {
public static void main(String[] args) {
String url = "https://www.example.com";
String html = "";
String tag = "h1";
try {
html = HtmlFetcher.getHtml(url);
} catch (Exception e) {
e.printStackTrace();
}
String text = HtmlParser.parse(html, tag);
System.out.println(text);
}
}
通过使用 Java 提供的 HttpClient 类获取网页代码,再使用 Jsoup 库获取指定标头标记内的文本,即可简单地从 JavaScript 中的标头标记复制文本。