如何在不使用Java的任何外部库的情况下读取网页的内容?

java.net包的URL类表示一个统一资源定位符,用于在万维网上指向资源(文件,目录或引用)。

的OpenStream()此类的方法打开到URL的连接表示由当前对象,并返回使用它可以读取来自URL数据的InputStream对象。

因此,要从网页读取数据(使用URL类)-

  • 通过将所需网页的URL作为参数传递给其构造函数来实例化java.net.URL类。

  • 调用该openStream()方法并检索InputStream对象。

  • 通过传递上面获取的InputStream对象作为参数来实例化Scanner类。

示例

import java.io.IOException;
import java.net.URL;
import java.util.Scanner;
public class ReadingWebPage {
   public static void main(String args[]) throws IOException {
      //实例化URL类
      URL url = new URL("http://www.something.com/");
      //检索指定页面的内容
      Scanner sc = new Scanner(url.openStream());
      //实例化StringBuffer类以保存结果
      StringBuffer sb = new StringBuffer();
      while(sc.hasNext()) {
         sb.append(sc.next());
         //System.out.println(sc.next()); 
      }
      //从字符串缓冲区对象中检索字符串
      String result = sb.toString();
      System.out.println(result);
      //删除HTML标签
      result = result.replaceAll("<[^>]*>", "");
      System.out.println("Contents of the web page: "+result);
   }
}

输出结果

<html><body><h1>Itworks!</h1></body></html>
Contents of the web page: Itworks!
猜你喜欢