调用 .text() 方法时 Jsoup 元素不显示
Jsoup elements don't show up when calling the .text() method
我正在制作一个 android 应用程序,我想通过网络抓取一个包含摩托车的页面。当我迭代该页面的元素时,它们打印了 html 标签,但由于我使用了 .text()
方法,所以我在终端上一行打印了所有内容。您可以在下面查看我的代码以便更好地理解。提前致谢。
@Override
protected String doInBackground(Void... voids) {
String title = "";
try {
Document document = Jsoup.connect("https://www.hotcars.com/best-motorcycles-for-beginners/").get();
Elements elements = document.select("div[class=w-website]").select("div[class=w-content]");
for (Element element : elements.select("section[class=article-body]")) {
title = element.select("h2").text();
System.out.print(title);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
如果我从 title
中删除 .text()
,那么我得到我的文本,但带有我不需要的 html 标签。
尝试以下方法作为起点来获取所需的元素
try {
Document document = Jsoup.connect("https://www.hotcars.com/best-motorcycles-for-beginners/").get();
Elements h2s = document.select("section[class=article-body] h2");
for (Element h2 : h2s) {
String title = h2.text();
Element img = h2.nextElementSibling().selectFirst("picture").selectFirst("source");
String imgSrc = img.attr("data-srcset");
Element p1 = h2.nextElementSibling().nextElementSibling();
Element p2 = p1.nextElementSibling();
String discription = p1.wholeText() + System.lineSeparator() + p2.wholeText();
System.out.println(title);
System.out.println();
System.out.println(imgSrc);
System.out.println();
System.out.println(discription);
System.out.println("------------------------");
}
} catch (IOException e) {
e.printStackTrace();
}
我正在制作一个 android 应用程序,我想通过网络抓取一个包含摩托车的页面。当我迭代该页面的元素时,它们打印了 html 标签,但由于我使用了 .text()
方法,所以我在终端上一行打印了所有内容。您可以在下面查看我的代码以便更好地理解。提前致谢。
@Override
protected String doInBackground(Void... voids) {
String title = "";
try {
Document document = Jsoup.connect("https://www.hotcars.com/best-motorcycles-for-beginners/").get();
Elements elements = document.select("div[class=w-website]").select("div[class=w-content]");
for (Element element : elements.select("section[class=article-body]")) {
title = element.select("h2").text();
System.out.print(title);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
如果我从 title
中删除 .text()
,那么我得到我的文本,但带有我不需要的 html 标签。
尝试以下方法作为起点来获取所需的元素
try {
Document document = Jsoup.connect("https://www.hotcars.com/best-motorcycles-for-beginners/").get();
Elements h2s = document.select("section[class=article-body] h2");
for (Element h2 : h2s) {
String title = h2.text();
Element img = h2.nextElementSibling().selectFirst("picture").selectFirst("source");
String imgSrc = img.attr("data-srcset");
Element p1 = h2.nextElementSibling().nextElementSibling();
Element p2 = p1.nextElementSibling();
String discription = p1.wholeText() + System.lineSeparator() + p2.wholeText();
System.out.println(title);
System.out.println();
System.out.println(imgSrc);
System.out.println();
System.out.println(discription);
System.out.println("------------------------");
}
} catch (IOException e) {
e.printStackTrace();
}