一个简易的URL爬虫程序(java)

该程序是一个简单的Java程序,用于从指定的URL中获取网页内容并保存到本地文件。通过URL类打开指定的URL链接,并使用openStream()方法获取输入流。然后使用Scanner类读取输入流中的内容,并使用PrintWriter类将读取到的内容写入到本地文件中。

在该程序中,程序打开了腾讯新闻(https://news.qq.com/),并将网页内容保存为qq.html文件。

java 复制代码
import java.io.BufferedInputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Scanner;

public class SimpleUrlCrawler {

    public static void main(String[] args) {
        try {
            // 创建URL对象,指定要抓取的网页地址
            URL url = new URL("https://news.qq.com/");

            // 打开URL连接获取输入流
            InputStream input = url.openStream();

            // 使用缓冲输入流包装输入流,提高读取效率
            Scanner cin = new Scanner(new BufferedInputStream(input));

            // 创建PrintWriter对象,用于写入文件
            PrintWriter cout = new PrintWriter(new FileWriter("qq.html"));

            // 逐行读取输入流中的内容,并写入文件
            while (cin.hasNextLine()) {
                cout.println(cin.nextLine());
            }

            // 关闭输入流、输出流
            input.close();
            cin.close();
            cout.close();
        } catch (Exception e) {
            // 处理异常
            e.printStackTrace();
        }
    }

}
相关推荐
爬山算法18 分钟前
Netty(17)Netty如何处理大量的并发连接?
java·后端
spencer_tseng30 分钟前
springcloud + javaframework + h5
java·spring·spring cloud
月明长歌1 小时前
【码道初阶】【Leetcode606】二叉树转字符串:前序遍历 + 括号精简规则,一次递归搞定
java·数据结构·算法·leetcode·二叉树
原来是好奇心1 小时前
深入Spring Boot源码(八):高级特性与扩展点深度解析
java·源码·springboot
oioihoii1 小时前
C++共享内存小白入门指南
java·c++·算法
Wpa.wk1 小时前
自动化测试 - 文件上传 和 弹窗处理
开发语言·javascript·自动化测试·经验分享·爬虫·python·selenium
@淡 定1 小时前
线程安全的日期格式化:避免 SimpleDateFormat 并发问题
java
qq_12498707531 小时前
基于springboot框架的小型饮料销售管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·spring·毕业设计
CodeAmaz2 小时前
JVM一次完整GC流程详解
java·jvm·gc流程