在Java中查找href链接和URL的内容

在Java中查找href链接和URL的内容,java,href,Java,Href,我要分析此链接: <a href="http://www.google.fr">Link to google</a> 我真的不知道如何做到这一点,有没有Java库来解决这个问题 提前感谢,使用解析器: 例如: File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); Element content = doc.

我要分析此链接:

<a href="http://www.google.fr">Link to google</a>
我真的不知道如何做到这一点,有没有Java库来解决这个问题

提前感谢,

使用解析器:

例如:

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
    String linkHref = link.attr("href");
  String linkText = link.text();
}
这就行了

public class Parse
{
  public static void main(String[] args)
  {
    String h = " <a href=\"http://www.google.fr\">Link to google</a>";
    int n = getIndexOf(h, '"', 0);

    String[] a = h.substring(n).split(">");
    String url = a[0].replaceAll("\"", "");
    String value = a[1].replaceAll("</a", "");

    System.out.println(url + " - " + value);
  }

  public static int getIndexOf(String str, char c, int n)
  {
    int pos = str.indexOf(c, 0);
    while (n-- > 0 && pos != -1)
    {
      pos = str.indexOf(c, pos + 1);
    }
    return pos;
  }
}
公共类解析
{
公共静态void main(字符串[]args)
{
字符串h=“”;
int n=getIndexOf(h,“”,0);
字符串[]a=h.substring(n).split(“>”);
字符串url=a[0]。replaceAll(“\”,”);

String value=a[1].replaceAll(“您可以使用XML解析器..然后解析该“a”节点并检索值。对于非常简单的HTML,您可以只使用JVM提供的默认HTMLParser。这是一种糟糕的做法。您应该避免依赖字符定位。请参阅Nurlan的答案。
public class Parse
{
  public static void main(String[] args)
  {
    String h = " <a href=\"http://www.google.fr\">Link to google</a>";
    int n = getIndexOf(h, '"', 0);

    String[] a = h.substring(n).split(">");
    String url = a[0].replaceAll("\"", "");
    String value = a[1].replaceAll("</a", "");

    System.out.println(url + " - " + value);
  }

  public static int getIndexOf(String str, char c, int n)
  {
    int pos = str.indexOf(c, 0);
    while (n-- > 0 && pos != -1)
    {
      pos = str.indexOf(c, pos + 1);
    }
    return pos;
  }
}