在HTML(Java)中查找值的快速方法

pek*_*pek 0 html java regex

使用正则表达式,获取网站HTML并查找此标记内的值(或任何属性的值)的最简单方法是:

<html>
  <head>
  [snip]
  <meta name="generator" value="thevalue i'm looking for" />
  [snip]
Run Code Online (Sandbox Code Playgroud)

Mik*_*tak 9

取决于您需要构建的Http请求的复杂程度(身份验证等).这是我过去看过的一种简单方法.

StringBuilder html = new StringBuilder();
java.net.URL url = new URL("http://www.google.com/");
BufferedReader input = null;
try {
    input new BufferedReader(
        new InputStreamReader(url.openStream()));

    String htmlLine;
    while ((htmlLine=input.readLine())!=null) {
        html.appendLine(htmlLine);
    }
}
finally {
    input.close();
}

Pattern exp = Pattern.compile(
    "<meta name=\"generator\" value=\"([^\"]*)\" />");
Matcher matcher = exp.matcher(html.toString());
if(matcher.find())
{
    System.out.println("Generator: "+matcher.group(1));
}
Run Code Online (Sandbox Code Playgroud)

编译时可能会发现很多拼写错误.(希望这不是作业)