jsoup解析html

jar包引用

下载jsoup-1.7.3.jar

maven引用

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

使用简介

这里只是简单列举一些方法,更多的放在在使用的时候,ide的自动提示里都可以看到,根据名字理解就可以.

    String htmlCode = "<input id=\"id\" name=\"name\">";
    Document doc = Jsoup.parse(htmlCode);
    // 可以根据元素的属性来查,比如类名,id,或者自定义的属性来查询元素
    Elements e = doc.getElementByAttribute();
    // 新增一个元素
    Element element1 = new Element(Tag.valueOf("div"),"");
    // 新建一个Tag  
    Tag tag = Tag.valueOf("input");
    // 将element1添加到e的前面
    e.before(element1);
    // 将element2天假到e的后面
    e.after(element1);
    // 添加一个子节点
    e.append(Node);

注意,对Document的get方法获取的Elements进行修改,那么即是在原Document里修改.

应用场景

  1. 可以使用jsoup来清理网站上的恶意攻击js,使用Jsoup的clean.
  2. 可以使用Jsoup来爬取网站的信息.

应用实例

    /**
    *爬取某个网站的小说方法
    **/
    private static void getNovers(String url,String contentId,String nextLinkId) throws IOException{
        String dirName = "/Users/admin/";
        String text = "";   
        Document doc = Jsoup.connect(url).get();
        Element e = doc.getElementById(contentId);
        if(e==null){
            
        }else{
            Elements h2 = doc.getElementsByTag("h2"); //标题
            File file = null;
            if(h2!=null&&h2.get(0)!=null) {
                file = new File(dirName+h2.get(0).text()+".txt");
            }
            text  = e.text().replace("    ",  "\r\n    ");
            FileOutputStream os = new FileOutputStream(file);
            String title = h2.get(0).text()+"\r\n";
            byte[] titlearr = title.getBytes();
            os.write(titlearr, 0, titlearr.length);
            os.flush();
            
            byte[] str = text.getBytes();
            os.write(str, 0, str.length);
            os.flush();
            os.close();
        
            Element next =  doc.getElementById(nextLinkId);
            if(next!=null){
                Elements links = next.children();
                Element  linkElement = links.get(links.size()-1);
                String nextUrl = linkElement.attr("href");
                 getNovers(nextUrl,contentId,nextLinkId);
            }
            
        }
        
    }

转载于:https://www.cnblogs.com/cbiwei/p/6962970.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值