gpt4 book ai didi

java - 通过 JSOUP 从 div 类获取数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:02 24 4
gpt4 key购买 nike

我需要从“rnicper”获取值“8.32”,从“rnstr”获取值“36 mg”,从“nirat”获取值“20/80 PG/VG”。

<div class="recline highlight" id="rnic">
<div class="rlab"><span class="nopr indic indic-danger"></span>Nicotine juice <span id="rnstr">36 mg</span> (<span id="nirat">20/80 PG/VG</span>)</div>
<div class="runit" id="rnicml">2.08</div>
<div class="rdrops" id="rnicdr">73</div>
<div class="rgrams" id="rnicg" style="display: none;">2.53</div>
<div class="rpercent" id="rnicper">8.32</div><br>
</div>

我尝试了各种方法,但没有任何反应。

doc.getElementById("rnicper").outerHtml();
doc.getElementById("rnicper").text();
doc.select("div#rnicper");
doc.getElementsByAttributeValue("id", "rnicper").text();

请告诉我,我如何使用 JSOUP 获取这些信息?

Chintak Patel 更新

AsyncTask asyncTask = new AsyncTask() {
@Override
protected Object doInBackground(Object[] objects) {
Document doc = null;
try {
doc = Jsoup.connect("http://e-liquid-recipes.com/recipe/2254223/RY4D%20Vanilla%20Swirl%20DL").get();
} catch (IOException e) {
e.printStackTrace();
}

String content = doc.select("div[id=rnicper]").text();
Log.d("content", content);

return null;
}
};
asyncTask.execute();

最佳答案

您尝试获取的参数值不是初始 html 的一部分,而是在页面加载后由 javascript 设置的。Jsoup 只获取静态 html,不执行 javascript 代码。

要获得您想要的内容,您可以使用 HtmlUnit 或 Selenium 等工具。

HtmlUnit 示例:

    try (final WebClient webClient = new WebClient()) {
webClient.getOptions().setThrowExceptionOnScriptError(false);
final HtmlPage page = webClient
.getPage("http://e-liquid-recipes.com/recipe/2254223/RY4D%20Vanilla%20Swirl%20DL");

System.out.println(page.getElementById("rnicper").asText());

}

关于java - 通过 JSOUP 从 div 类获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49106668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com