首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用jsoup从维基百科获取目录(文本和层次结构)

jsoup是一款用于Java语言的HTML解析器,可以方便地从网页中提取数据。通过使用jsoup,我们可以从维基百科获取目录的文本和层次结构。

首先,我们需要导入jsoup库。可以通过以下方式在Java项目中添加jsoup依赖:

代码语言:txt
复制
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.14.3</version>
</dependency>

接下来,我们可以使用jsoup编写代码来获取维基百科页面的目录。以下是一个示例代码:

代码语言:txt
复制
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class WikiParser {
    public static void main(String[] args) {
        try {
            // 使用jsoup连接到维基百科页面
            Document doc = Jsoup.connect("https://zh.wikipedia.org/wiki/云计算").get();

            // 获取目录的元素
            Element toc = doc.getElementById("toc");

            // 获取所有的目录项
            Elements tocItems = toc.getElementsByTag("li");

            // 遍历目录项并输出文本和层次结构
            printTocItems(tocItems, 1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void printTocItems(Elements tocItems, int level) {
        for (Element tocItem : tocItems) {
            // 获取目录项的文本
            String text = tocItem.text();

            // 输出目录项的文本和层次结构
            System.out.println("Level " + level + ": " + text);

            // 获取下一级目录项
            Elements subTocItems = tocItem.getElementsByTag("li");

            // 递归调用打印下一级目录项
            printTocItems(subTocItems, level + 1);
        }
    }
}

上述代码中,我们首先使用Jsoup.connect()方法连接到维基百科页面,然后通过getElementById()方法获取目录的元素。接着,我们使用getElementsByTag()方法获取所有的目录项,并通过递归调用printTocItems()方法打印目录项的文本和层次结构。

这样,我们就可以使用jsoup从维基百科获取目录的文本和层次结构了。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能平台(AI):https://cloud.tencent.com/product/ai
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/ioe
  • 移动推送服务(TPNS):https://cloud.tencent.com/product/tpns
  • 区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙:https://cloud.tencent.com/solution/virtual-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

手把手教你从零开始用Java写爬虫

Jsoup可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出操作数据。...Jsoup相关API整理见文末附录一。 开始 一、前端分析 1、使用Chrome或其他浏览器,打开全景网,按F12进入调试模式,分析网页结构。(这里选的是“创意”=>“优山美地”) ?...() // 获取文本内容text(String value) 设置文本内容 text() // 获取元素内HTMLhtml(String value)设置元素内的HTML内容 html() /.../ 获取元素外HTML内容 outerHtml() // 获取数据内容(例如:scriptstyle标签) data() tag() tagName()​ 3、操作HTML和文本 append...、文本HTML 1、要取得一个属性的值,可以使用Node.attr(String key) 方法 2、对于一个元素中的文本,可以使用Element.text()方法 3、对于要取得元素或属性中的

1.4K20

数据结构思维 第六章 树的遍历

我描述了搜索引擎的元素,并介绍了第一个应用程序,一个维基百科下载和解析页面的 Web 爬行器。本章还介绍了深度优先搜索的递归实现,以及迭代实现,它使用 JavaDeque实现“后入先出”的栈。...搜索引擎的基本组成部分是: 抓取:我们需要一个程序,可以下载网页,解析它,并提取文本任何其他页面的链接。 索引:我们需要一个数据结构,可以查找一个检索项,并找到包含它的页面。...当我们的爬虫下载页面时,它需要解析 HTML,以便提取文本并找到链接。为此,我们将使用jsoup,它是一个下载和解析 HTML 的开源 Java 库。...解析 HTML 的结果是文档对象模型(DOM)树,其中包含文档的元素,包括文本标签。树是由节点组成的链接数据结构;节点表示文本,标签其他文档元素。 节点之间的关系由文档的结构决定。...我们将使用这个元素 ID 来标识我们下载的每篇文章的正文。 6.3 使用jsoup jsoup非常易于下载,和解析 Web 页面,以及访问 DOM 树。

80320

Jsoup(一)Jsoup详解(官方)

1.3、jsoup 的主要类层次结构 ?...如果该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。         ...()获取元素外HTML内容     data()获取数据内容(例如:scriptstyle标签)     tag() and tagName()     C:操作HTML和文本     append(...i)login)       :matchesOwn(regex): 查找自身包含文本匹配指定正则表达式的元素       注意:上述伪选择器索引是0开始的,也就是 4.3、元素抽取属性,本文HTML...4.5、实例程序:获取所有连链接   1)说明     这个示例程序将展示如何从一个URL获得一个页面。然后提取页面中的所有链接、图片其它辅助内容。并检查URLs和文本信息。

8.4K50

数据结构思维 第七章 到达哲学

WikiFetcher.java包含一个工具类,使用jsoup维基百科下载页面。为了帮助你遵守维基百科的服务条款,此类限制了你下载页面的速度;如果你每秒请求许多页,在下载下一页之前会休眠一段时间。...可能不明显的是,值得使用两个类五个方法,来重写一个完美的方法。...为了帮助你避免这种情况,我提供了一个WikiFetcher类,它可以做两件事情: 它封装了我们在上一章中介绍的代码,用于维基百科下载页面,解析 HTML 以及选择内容文本。...7.4 练习 5 在WikiPhilosophy.java中,你会发现一个简单的main方法,展示了如何使用这些部分。从这个代码开始,你的工作是写一个爬虫: 获取维基百科页面的 URL,下载并分析。...为了检查链接是否在括号中,你必须在遍历树时扫描文本,并跟踪开启闭合括号(理想情况下,你的解决方案应该能够处理嵌套括号(像这样))。

27920

java写一个自动爬取统计局公开数据的程序

我们使用User-Agent来模拟浏览器请求,以便网站不会拒绝我们的请求。我们还设置了连接超时时间(10秒),以防止请求超时。2、然后,我们使用Jsoup对象的connect方法获取网页内容。...3、我们使用document.body().html()方法获取网页的HTML源代码,并将其存储在content变量中。4、我们使用document.select方法选择网页中特定的元素。...5、我们使用Elements对象的forEach方法遍历所有选择的元素,并获取每个元素的文本内容。6、最后,我们使用System.out.println方法输出获取的网页内容和文本内容。...注意:在实际使用时,你需要根据实际的网页结构和数据需求来选择设置HTML选择器。同时,你需要确保你的爬虫行为符合网站的robots.txt协议,并遵守相关的法律法规。...此外,使用爬虫ip还需要注意爬虫ip服务器的稳定性可用性,以及可能存在的网络延迟等问题。

17320

Java解析遍历html文档利器

前言:几乎任何的语言都可以解析遍历html超文本,我常用的语言就是php啦,但是我想在android客户端获取网络http的的数据,虽然可以使用php但是需要二次连接php环境,然而就直接使用java...语言去搞,那么不可能直接用java原生语言去码的啦,使用****Jsoup****去解析,Jsoup是java语言一款不错的html解析文档的利器!...---- ****Jsoup的简介**** Jsoup是java语言一款不错的html解析遍历文档的利器。...(html标签包含head body,在head只出现恰当的元素) ****Jsoup常用的方法**** 从一个URL加载一个Document 简单的get方法 Document doc = Jsoup.connect.../"); 简单的String加载HTML Document doc = Jsoup.parse(String html); 使用DOM方法来遍历一个文档 File file = new File("/

1.9K60

爬虫入门到放弃01:什么是爬虫

系列结构 目录 如图,将从四个方面来介绍爬虫。 爬虫入门:主要包括爬虫的基本概念、技术栈、爬虫程序的开发等。 反爬技术:主要是讲述常见的反爬虫技术以及应对方法。...很多人觉得只有程序员才需要使用爬虫,其实并不是。至少,Python处理文档爬虫的能力是面向日常工作的。...二是通过选择器来编写规则,页面获取数据。 这是浏览器的请求头内容。 请求头 技术栈 技术栈 做爬虫需要什么具备什么样的技术?是不是只有大佬才可以?其实并不是。这里主要分为两个层次要求。...我们以此为例,开发爬虫来获取页面数据。 Java爬虫 Java爬虫的开发主要使用Jsoup。...而下一篇文章会根据上面的程序,着重对Jsouprequests、bs4模块以及css选择器的使用深入探究。期待下一次相遇。

49010

爬虫入门到放弃01:你好,爬虫!

系列结构 [目录] 如图,将从四个方面来介绍爬虫。 爬虫入门:主要包括爬虫的基本概念、技术栈、爬虫程序的开发等。 反爬技术:主要是讲述常见的反爬虫技术以及应对方法。...很多人觉得只有程序员才需要使用爬虫,其实并不是。至少,Python处理文档爬虫的能力是面向日常工作的。...二是通过选择器来编写规则,页面获取数据。 这是浏览器的请求头内容。 [请求头] 技术栈 [技术栈] 做爬虫需要什么具备什么样的技术?是不是只有大佬才可以?其实并不是。这里主要分为两个层次要求。...我们以此为例,开发爬虫来获取页面数据。 Java爬虫 Java爬虫的开发主要使用Jsoup。...而下一篇文章会根据上面的程序,着重对Jsouprequests、bs4模块以及css选择器的使用深入探究。期待下一次相遇。

70440

Jsoup 基础知识

创建可靠的文档结构(html标签包含head body,在head只出现恰当的元素) 一个文档的对象模型 文档由多个ElementsTextNodes组成 其继承结构如下:Document继承Element...只要解析的不是空字符串,就能返回一个结构合理的文档,其中包含(至少) 一个head一个body元素。...如果该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。...内容 data()获取数据内容(例如:scriptstyle标签) tag() and tagName() 操作HTML和文本 append(String html), prepend(String...Selector API参考来了解更详细的内容 元素抽取属性,文本HTML 问题 在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据。

3.7K10

Java爬虫之JSoup使用教程

---- 文章目录 Java爬虫之JSoup使用教程 代码下载地址 介绍 主要类 1. org.jsoup.Jsoup类 2. org.jsoup.nodes.Document类 3. org.jsoup.nodes.Element...URL,文件或字符串中刮取并解析HTML 查找提取数据,使用DOM遍历或CSS选择器 操纵HTML元素,属性和文本 根据安全的白名单清理用户提交的内容,以防止XSS攻击 输出整洁的HTML 文档地址...文件加载文档 使用Jsoup.parse()方法文件加载HTML。...value)设置文本内容 html()获取html(String value)设置内部HTML内容 outerHtml() 获取外部HTML值 data()获取数据内容(例如scriptstyle...更多选择器的语法 元素中提取属性,文本HTML 在解析文档并找到一些元素之后,您将需要获取这些元素中的数据。

9.9K20

Android开发笔记(六十二)HTTP数据格式的解析

json json的常用方法有: JSONObject构造函数 : 指定字符串构造出一个JSONObject对象 JSONObject.getJSONObject : 获取指定名称的JSONObject...getName : 获取当前节点的名称。 nextText : 获取当前节点的文本。 next : 解析下一个节点。返回值是下一个节点的事件类型。...jsoup,把jsoup-1.8.1.jar加入到工程的libs目录,即可在工程中调用jsoup的解析方法。...jsoup的解析分为三个层次,第一级是Document,表示整个html网页;第二级是Element,表示某个组件及其下面的元素;第三级是Node,表示某个具体的节点。...下面是Element的常用方法: ——select : 获取指定名称的组件数组Elements,获取具体的Element可再调用Elements的get方法; ——text : 获取当前组件下的所有文本

1.3K20

XML学习笔记

在XML中,是严格的树状结构,绝对不能省略掉结束标记。 3. 在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/ 字符作为结尾。这样分析器就知道不用查找结束标记了。 4....Jsoup:是一款JAVA的HTML解析器,可直接解析URL地址,HTML文本内容 PULL:Android操作系统内置的解析器,基于sax Jsoup的学习https://jsoup.org/download...步骤: 1:导入jar包 2:获取document对象 3:获取对应的标签element对象 4:获取数据 import org.jsoup.Jsoup; import org.jsoup.nodes.Document...获取文本内容,String text() 获取标签体在内的所有内容,String html() 4.Element:元素对象 5.Node:节点对象 是DocumentElement的父类 快捷查询...Xpath为XML路径语言 使用Jsoup的Xpath需要额外导入jar包

61100

Java爬虫系列三:使用Jsoup解析HTML「建议收藏」

============华丽的分割线============= 一、Jsoup自我介绍 大家好,我是Jsoup。 我是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。...它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出操作数据,用Java写爬虫的同行们十之八九用过我。为什么呢?因为我在这个方面功能强大、使用方便。...下面通过案例展示如何使用Jsoup进行解析,案例中将获取博客园首页的标题第一页的博客文章列表 请看代码(在上一篇代码的基础上进行操作,如果还不知道如何使用httpclient的朋友请跳转页面进行阅读...对于元素中的属性,比如超链接地址,可以使用element.attr(String)方法获取, 对于元素的文本内容通过element.text()方法获取。...执行代码,查看结果(不得不感慨博客园的园友们真是太厉害了,从上面分析首页html结构Jsoup分析的代码执行完,这段时间首页多了那么多文章) 由于新文章发布的太快了,导致上面的截图这里的输出有些不一样

1.3K20

JAVA爬虫 – Jsoup

jsoup 介绍 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。...jsoup的主要功能如下: 从一个URL,文件或字符串中解析HTML; 使用DOM或CSS选择器来查找、取出数据; 可操作HTML元素、属性、文本;( Jsoup一般用于解析爬到的数据并存储, 很少用到操作...,连接池,代理等等方式,而jsoup对这些的支持并不是很好,所以我们一般把jsoup仅仅作为Html解析工具使用 3,jsoup解析字符串文件 // 使用工具类读取文件,获取字符串...className 元素中获取属性的值 attr 元素中获取所有属性 attributes 元素中获取文本内容 text // 解析文件,获取doc对象 Document...str4 = element.attributes(); // 5,元素中获取文本内容 text String str5 = element.text(); 5,使用选择器获取元素

1.2K20
领券