Jsoup加载HTML的三种方式

来源:互联网 发布:java broken pipe解决 编辑:程序博客网 时间:2024/05/29 09:38


转载:http://www.javacui.com/opensource/464.html

Jsoup加载HTML的三种方式,上一篇说的只是一种方式,直接从HTTP源网站获取。


从字符串解析

来自用户输入,一个文件或一个网站的HTML字符串,你可能需要对它进行解析并取其内容,或校验其格式是否完整,或想修改它。

?
1
2
3
String html = "<html><head><title>First parse</title></head>"
  "<body><p>from www.javacui.com</p></body></html>";
Document doc = Jsoup.parse(html);

只要解析的不是空字符串,就能返回一个结构合理的文档,其中包含(至少) 一个head和一个body元素。

一旦拥有了一个Document,你就可以使用Document中适当的方法或它父类 Element和Node中的方法来取得相关数据。

实用示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.cui.test;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
 * 从字符串解析HTML
 * @author java小强
 */
public class StringHtmlSpider {
    public static void main(String[] args) {
        try {
            String html = "<html><head><title>First parse</title></head>"
                    "<body><p>from www.javacui.com</p></body></html>";
            Document doc = Jsoup.parse(html);
            Elements elements = doc.getElementsByTag("p");// 根据标签获取
            Element e = elements.get(0);// 因为我知道只有一个p
            System.out.println(e.text());
            // 打印 from www.javacui.com
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}


从本地文件加载

在本机硬盘上有一个HTML文件,需要对它进行解析从中抽取数据或进行修改。本示例HTML文件内容和上面示例字符串内容一致。

?
1
2
File input = new File("D:\\javacui.html");
Document doc = Jsoup.parse(input, "UTF-8");

这个方法用来加载和解析一个HTML文件。如在加载文件的时候发生错误,将抛出IOException,应作适当处理。

实用示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.cui.test;
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
/**
 * 从本地文件解析HTML
 * @author java小强
 */
public class LocalDiskSpider {
    public static void main(String[] args) {
        try {
            File input = new File("D:\\javacui.html");
            Document doc = Jsoup.parse(input, "UTF-8");
            Elements elements = doc.getElementsByTag("p");// 根据标签获取
            Element e = elements.get(0);// 因为我知道只有一个p
            System.out.println(e.text());
            // 打印 from www.javacui.com
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}


来自网络

你需要从一个网站获取和解析一个HTML文档,并查找其中的相关数据。

?
1
2
Document doc = Jsoup.connect("http://www.javacui.com/").get();
String title = doc.title();

connect(String url) 方法创建一个新的 Connection, 和 get() 取得和解析一个HTML文件。如果从该URL获取HTML时发生错误,便会抛出 IOException,应适当处理。

Connection 接口还提供一个方法链来解决特殊请求,具体如下:

?
1
2
3
4
5
6
Document doc = Jsoup.connect("http://example.com")
  .data("query""Java")
  .userAgent("Mozilla")
  .cookie("auth""token")
  .timeout(3000)
  .post();

这个方法只支持Web URLs (http和https 协议)。

使用代码参考:http://www.javacui.com/opensource/463.html 


Jsoup加载HTML的三种方式


参考官网:https://jsoup.org/ 


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 重置手机忘了密码怎么办 sp下行短信费扣怎么办 hr公司业务员招不到人怎么办 卖房中介被房倒压房子怎么办 电脑放不了dvd光盘怎么办 股东迟迟不交齐股本金怎么办 wps转pdf就乱了怎么办 被有用分期骗了怎么办 找不到以前有用分期的账号怎么办 打工去韩国不懂韩语怎么办? 想去韩国整容没钱怎么办 专接本没接上怎么办 抄写经文写错了怎么办 在外地修车被宰怎么办 国外汇款公司名称写错了怎么办 增值税专票没有机器编码怎么办 发票右上角的编码打不全怎么办 税票名称开错了怎么办 开票名称开错了怎么办 退休党员不交党费怎么办 cad打不出来字怎么办 用cad打不出来字怎么办 打字总打错字母怎么办 mac做ppt卡住了怎么办 mac的ppt卡住了怎么办 淘宝店铺被屏蔽了怎么办 淘宝申请售后卖家拒绝怎么办 淘宝投诉卖家入口关闭怎么办 遇见最喜欢孩子的父母怎么办 房屋备案表丢了怎么办 淘宝发布商品没有品牌怎么办 电子发票名称写错了怎么办 合同写错了划掉怎么办 进京证日期错了怎么办 买车时谈的协议与合同不一致怎么办 新车上牌找不到流水号怎么办 开票数量比入库数量少怎么办 我贷款的app忘了怎么办 网贷名字忘了怎么办 附件太大邮件发不出去怎么办 孩子出生足印单子丢了怎么办