Java简易爬虫核心四步:1.用HttpURLConnection发GET请求,设User-Agent和超时;2.用BufferedReader读取HTML字符串;3.用Jsoup.parse()解析并CSS选择器提取数据;4.去重+限速后保存至本地文件。

Java开发简易爬虫,核心是发送HTTP请求、解析HTML、提取数据,再保存或处理。不需要复杂框架,用JDK自带类和少量第三方库就能快速上手。
用HttpURLConnection发基础请求
Java标准库的HttpURLConnection足够应付静态页面抓取。它轻量、无需额外依赖,适合入门理解网络通信流程。
- 设置请求方法为
GET,启用输入流,配置超时时间(建议连接和读取都设为5000毫秒) - 手动添加
User-Agent头,避免被网站拒绝(例如:"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36") - 用
BufferedReader逐行读取响应体,拼接为完整HTML字符串
用Jsoup解析HTML并提取内容
Jsoup是Java中最易上手的HTML解析库,语法类似jQuery,支持CSS选择器,适合初学者快速定位元素。
- Maven引入:
org.jsoup jsoup 1.17.2 - 加载HTML:用
Jsoup.parse(htmlString)或直接Jsoup.connect(url).get()一步完成请求+解析 - 提取标题:
doc.select("title").text();提取所有新闻链接:doc.select("a[href^=http]").eachAttr("href")
简单去重与基础反爬应对
爬取多页或多个URL时,重复访问和被封IP是常见问题。初期可做最小化防护。
立即学习“Java免费学习笔记(深入)”;
- 用
HashSet记录已抓取的URL,避免循环或重复请求 - 每次请求后调用
Thread.sleep(1000)模拟人工间隔,降低服务器压力 - 检查响应状态码(如403、429),遇到异常时打印提示而非直接抛错,方便调试
保存结果到本地文件
抓到的数据通常要落地。用Files.write()或PrintWriter写入文本文件最直接。
- 按日期+关键词命名文件,例如
"news_20240520.txt",便于后续管理 - 每条记录换行存储,字段间用制表符
\t分隔,兼容Excel打开 - 写入前确保目标目录存在:
Paths.get("output").toFile().mkdirs()
不复杂但容易忽略细节。从发请求、取内容、防重复到存文件,四步闭环跑通,就是一个可用的入门爬虫。后续再考虑代理、登录态、动态渲染等进阶场景。










