代码
public class demo051401 {
public static void main(String[] args) throws IOException {
// 爬虫
// 创建一个url对象,获取要爬虫的地址
// 创建一个对象去读取url里面的网络数据
URL url = new URL("http://www.yy521.com/qq/article/6827.html");
// java .openConnection() 是 Java 中用于建立网络连接的方法之一,通常用于创建 HTTP 连接。
URLConnection conn = url.openConnection();
// conn.getInputStream(): 这个方法返回与 URLConnection 关联的输入流。这个输入流用于从
// 远程服务器读取数据,可以通过它来获取服务器的响应。
//
// InputStreamReader: 这个类是字节流到字符流的桥梁,它将字节流转换为字符流。在这里,
// InputStreamReader 将 conn.getInputStream() 返回的字节流转换为字符流。
//
// BufferedReader: 这个类用于读取字符输入流,并提供了缓冲功能,可以提高读取效率。
// 在这里,BufferedReader 会从 InputStreamReader 返回的字符流中读取数据。
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
// 定义一个字符串 line
String line;
String regex = "[1-9]\\d{17}";
// 将上面定义的正则表达式字符串编译成一个 Pattern 对象。Pattern 类是 Java 中用于表示正则表达式的对象
Pattern pattern = Pattern.compile(regex);
// java.readLine() 是 Java 中用于从标准输入流(通常是控制台输入)读取一行文本的方法
while ((line = br.readLine()) != null){
// 按照pattern的规则去读当前的这行信息
// Matcher 类用于执行正则表达式的匹配操作
Matcher matcher = pattern.matcher(line);
while (matcher.find()){
System.out.println(matcher.group());
}
}
}
}
结果