Jsoup -- 网络爬虫解析器

需要下载jsoup-1.8.1.jar包

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

网页获取和解析速度飞快,推荐使用。
主要功能如下:
1. 从一个URL,文件或字符串中解析HTML;
2. 使用DOM或CSS选择器来查找、取出数据;
3. 可操作HTML元素、属性、文本;

范例代码如下:

Java代码  收藏代码
  1. package cn.ysh.studio.crawler.jsoup;  
  2.   
  3. import java.io.IOException;  
  4. import org.jsoup.Jsoup;  
  5.   
  6. /** 
  7.  * 基于Jsoup抓取网页内容 
  8.  * @author www.yshjava.cn 
  9.  */  
  10. public class JsoupTest {  
  11.   
  12.     public static void main(String[] args) throws IOException {  
  13.         //目标页面  
  14.         String url = "http://www.yshjava.cn";  
  15.         //使用Jsoup连接目标页面,并执行请求,获取服务器响应内容  
  16.         String html = Jsoup.connect(url).execute().body();  
  17.         //打印页面内容  
  18.         System.out.println(html);  
  19.     }  
  20. }  

 

自我总结:

概述

Jsoup 是一个用于处理 HTML 的 Java 库,它可以从 URL、文件或字符串中提取和操作数据,特别适合用于网络爬虫中解析 HTML 页面。Jsoup 提供了类似于 jQuery 的语法,方便开发者选择和操作 HTML 元素。

核心功能

  • 解析 HTML:可以将 HTML 字符串、文件或从 URL 获取的 HTML 内容解析为 Document 对象。
  • 选择元素:支持使用 CSS 选择器或 XPath 表达式来选择 HTML 元素。
  • 操作元素:可以修改元素的属性、文本内容等。

示例代码及解释

1. 添加依赖

如果你使用 Maven 项目,在 pom.xml 中添加 Jsoup 依赖:

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.15.3</version>
</dependency>

2. 从 URL 解析 HTML 页面

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class JsoupExample {
    public static void main(String[] args) {
        try {
            // 从 URL 获取 HTML 内容并解析为 Document 对象
            Document doc = Jsoup.connect("https://news.baidu.com/").get();

            // 使用 CSS 选择器选择所有新闻标题元素
            Elements newsTitles = doc.select("div#pane-news a.title");

            // 遍历新闻标题元素并打印标题文本
            for (Element title : newsTitles) {
                System.out.println(title.text());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 代码解释

  • 连接到 URL 并获取 HTML 内容
Document doc = Jsoup.connect("https://news.baidu.com/").get();

使用 Jsoup.connect(url).get() 方法连接到指定的 URL,并将返回的 HTML 内容解析为 Document 对象。

  • 使用 CSS 选择器选择元素
Elements newsTitles = doc.select("div#pane-news a.title");

使用 select() 方法结合 CSS 选择器 div#pane-news a.title 选择所有符合条件的新闻标题元素。Elements 是一个元素集合,包含了所有匹配的元素。

  • 遍历元素并获取文本内容
for (Element title : newsTitles) {
    System.out.println(title.text());
}

使用 text() 方法获取元素的文本内容,并打印出来。

4. 其他常用操作

获取元素属性

Element link = doc.select("a").first();
String href = link.attr("href");
System.out.println("链接地址: " + href);

修改元素内容

Element paragraph = doc.select("p").first();
paragraph.text("新的段落内容");

总结

Jsoup 是一个强大且易用的 HTML 解析库,通过简单的 API 可以方便地解析 HTML 页面、选择元素和操作元素。在网络爬虫开发中,使用 Jsoup 可以快速提取所需的数据,提高开发效率。

posted @   皇问天  阅读(1363)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示