网络爬虫技术Jsoup
Jsoup介绍:
Jsoup 是一个 Java 的开源HTML解析器,可直接解析某个URL地址、HTML文本内容
Jsoup主要有以下功能:
1. 从一个URL,文件或字符串中解析HTML
2. 使用DOM或CSS选择器来查找、取出数据
3. 对HTML元素、属性、文本进行操作
4. 清除不受信任的HTML (来防止XSS攻击)
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.9.2</version> </dependency>
public class JsoupDemo { private static OutputStream os; public static void main(String[] args) { try { Document doc = Jsoup.connect("https://www.csdn.net/").get(); // System.out.println(doc.title()); //CSDN-专业IT技术社区 //把文章标题和连接写入txt文件 Element feedlist_id = doc.getElementById("feedlist_id"); Elements h2 = feedlist_id.select("h2.csdn-tracking-statistics"); Elements a = h2.select("a"); //指定文件名及路径 File file = new File("E:\\jsoup\\word\\test.txt"); if (!file.exists()) { file.createNewFile(); } //写入本地 PrintWriter pw = new PrintWriter("E:\\jsoup\\word\\test.txt","UTF-8"); for (Element element : a) { pw.println(element.text()); pw.println(element.attr("href")); pw.println("------------------------------------------------------------------------------------------------------------------------------------"); } pw.close(); //关闭输出流 //获取页面上的图片保存到本地 Elements imgs = doc.select("img[src$=.png]"); for (Element element : imgs) { String img = element.attr("src"); String url = "http:"+img; System.out.println(url); System.out.println(url.indexOf("csdn")); if (url.indexOf("csdn")==-1) { continue; } URL u = new URL(url); URLConnection uc=u.openConnection(); //获取数据流 InputStream is=uc.getInputStream(); //获取后缀名 String imageName = img.substring(img.lastIndexOf("/") + 1,img.length()); //写入本地 os = new FileOutputStream(new File("E:\\jsoup\\img", imageName)); byte[] b = new byte[1024]; int i=0; while((i=is.read(b))!=-1){ os.write(b, 0, i); } is.close(); os.close(); } } catch (IOException e) { e.printStackTrace(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理