Jsoup文档--提取数据(使用DOM方法遍历文档)

使用DOM方法遍历文档

问题

想要从HTML文档中提取数据(通常是了解该HTML文档结构的)。

解决方案

在将HTML解析成Document后使用类似于操作DOM的方法。

File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");

Element content = doc.getElementById("content");
Element links = doc.getElementByTag("a");
for (Element link : links) {
	String linkHref = link.attr("href");
	String linkText = link.text();
}

描述

Elements对象提供一系列类似于操作DOM的方法来查找元素、提取和操作其中的数据。DOM getters方法是上下文相关的,在父级DOM上调用可以获取到文档下对应匹配的元素;在子级元素上调用可以获取到子元素下的元素。可以通过这种方式筛选出想要的数据。

查找元素:

  • getElementById(String id)
  • getElementsByTag(String tag)
  • getElementsByClass(String className)
  • getElementsByAttribute(String key)(和相关的方法)
  • 相邻元素获取:siblingElements()firstElementSibling()lastElementSibling()nextElementSibling()previousElementSibling()
  • 谱系:parent()children()child(int index)

操作元素中的数据

  • 获取属性:attr(String key);设置属性:attr(String key, String value)
  • 获取所有属性:attributes()
  • id()className()classNames()
  • 获取文本内容:text();设置文本内容:text(String value)
  • 获取元素内HTML:html();设置元素内HTML:html(String value)
  • 获取元素外部HTML:outerHtml()
  • 获取数据内容:data()(e.g. scriptstyle标签)
  • tag()tagName()

操作HTML和文本内容

  • append(String html)prepend(String html)
  • appendText(String text)prependText(String text)
  • appendElementt(String tagName)prependElement(String tagName)
  • html(String html)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值