java解析html_Java解析Html

最近用到了Java解析Html的一个库Jsoup, 这儿是官网, 在此分享给大家,有这方面需要的朋友可以试一试。

有三个类需要我们了解,分别是Document,Elements,Element

大至用法有两步

第一步:加载html,,这儿提供两种方式,一种是从本地加载,一种是从网上直接加载。

从本地加载:

String html = "YOU HTML STRING";Document doc = Jsoup.parse(html);

也可以直接从文件加载

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

通过url从网络加载

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();String title = doc.title();

上面是通过http的get方法,下可以通过post来获取

Document doc = Jsoup.connect("http://example.com").data("query", "Java").userAgent("Safari").cookie("auth", "token").timeout(3000).post();

第二步:定位元素

通过定义的api定位无素

定位body

String html = "

Lorem ipsum.

";Document doc = Jsoup.parseBodyFragment(html);Element body = doc.body();

定位标签

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

常用的API有

查找API:

getElementById(String id)getElementsByTag(String tag)getElementsByClass(String className)getElementsByAttribute(String key) (and related methods)兄弟关系的:siblingElements(), firstElementSibling(), lastElementSibling(); nextElementSibling(), previousElementSibling()父子关系的: parent(), children(), child(int index)

值操作API:

attr(String key) to get and attr(String key, String value) to set attributesattributes() to get all attributesid(), className() and classNames()text() to get and text(String value) to set the text contenthtml() to get and html(String value) to set the inner HTML contentouterHtml() to get the outer HTML valuedata() to get data content (e.g. of script and style tags)tag() and tagName()

修改API

append(String html), prepend(String html)appendText(String text), prependText(String text)appendElement(String tagName), prependElement(String tagName)html(String value)

通过select语法定位元素

这个不好用文字表达,直接看官网文档吧.

时间仓促,难免有不少错误,还往指正。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值