java - JSoup 从 html 文件中按顺序解析文本和链接

标签 java html parsing foreach jsoup

我正在尝试从 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 循环中,但这只打印了页面的完整链接列表,有人可以帮忙吗?

最佳答案

尝试

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");
    }
}

关于java - JSoup 从 html 文件中按顺序解析文本和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516207/

相关文章:

python - 如何计算对话中每个角色所说的单词数并将计数存储在字典中?

java - 将图像从数据库加载到 Spring 应用程序上下文中。我使用mybatis api

html - CSS 仅在第一个元素上溢出省略号

linux - 提取 pcap 文件中的字节范围

javascript - 我的 knockout 表格无法阻止事件冒泡,因此提交表格 "for real"

javascript - jquery 更改下拉列表中的占位符输入

python - 加速 Python NLP 文本解析

java - java中如何检查用户是否有数据库的写权限

java - 无法在android数据绑定(bind)中制作点击事件

java - Vaadin - 使用控制键拖放