我正在尝试从html文件中提取文本和链接。目前我可以使用JSoup轻松提取,但我只能单独进行。
这是我的代码:
try {
doc = (Document) Jsoup.parse(new File(input), "UTF-8");
Elements paragraphs = ((Element) doc).select("td.text");
for(Element p : paragraphs){
// System.out.println(p.text()+ "\r\n" + "***********************************************************" + "\r\n");
getGui().setTextVers(p.text()+ "\r\n" + "***********************************************************" + "\r\n");
}
Elements links = doc.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
getGui().setTextVers("\n\n"+link.text() + ">\r\n" +linkHref + "\r\n");
}
}
我在最外面的td放了一个.text类,里面有文本。我想要实现的是:当程序找到一个带有.text类的td时,它会检查它是否有任何链接并按顺序从该部分中提取它们。所以你会:
文字
链接
文字
链接
我尝试将每个循环的内部放入第一个foreach循环,但这只打印了页面的完整链接列表,任何人都可以帮忙吗?
答案 0 :(得分:1)
尝试
Document doc = (Document) Jsoup.parse(new File(input), "UTF-8");
Elements paragraphs = ((Element) doc).select("td.text");
for (Element p : paragraphs) {
System.out.println(p.text());
Elements links = p.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
System.out.println("\n\n" + linkText + ">\r\n" + linkHref + "\r\n");
}
}