我需要获得价值" 8.32"来自" rnicper"," 36 mg"来自" rnstr"和" 20/80 PG / VG"来自" nirat"。
<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();
答案 0 :(得分:3)
您尝试获取的参数值不是初始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());
}
答案 1 :(得分:0)
在Activity类中编写以下类,并使用JSoup执行。此代码用于从Play商店网站获取当前版本。您可以将网址和#include "Bildverarbeitung.h"
//https://www.baslerweb.com/fp-1476182890/media/downloads/documents/application_notes/AW00136101000_Getting_Started_with_pylon4_and_OpenCV.pdf
int main()
{
bilderkennung->run();
}
更改为div[id=rnicper]
方法。然后在select()
方法中执行。
postExecute()