首页 > 解决方案 > 你如何过滤掉标签?

问题描述

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class ListLinks {
    public static void main(String[] args) throws IOException {
        //Validate.isTrue(args.length == 1, "usage: supply url to fetch");
        String url = "https://www.google.com/";
        print("Fetching %s...", url);

        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a");

        print("\nLinks: (%d)", links.size());
        for (Element link : links) {
            print(" * a: <%s>  (%s)", link.attr("abs:href"), trim(link.text(), 35));
        }
    }

    private static void print(String msg, Object... args) {
        System.out.println(String.format(msg, args));
    }

    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width-1) + ".";
        else
            return s;
    }
}

我的问题是,结果带有一堆额外的标签,例如:

  • a: <> (重新安装以保持安全)
  • 一个:https ://www.google.com/intl/en/about/?fg=1&utm_source=google-US&utm_medium=referral&utm_campaign=hp-header (关于)
  • 一个:https ://store.google.com/utm_source=hp_header&utm_medium=google_oo&utm_campaign=GS100042 (商店)
  • a: <> (重新安装以保持安全)

谁能告诉我如何删除诸如“*”、“a”、“<>”之类的东西,它只显示链接?

标签: javajsoup

解决方案


只需调整格式字符串,对于String.format(). 在你的情况下,msg价值:

print("%s", link.attr("abs:href"));

推荐阅读