Soup解析html简单使用

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class TestSinaHtml_Soup {
    
    public static void main(String[] args){
        final String url="http://news.sina.com.cn/o/2017-12-17/doc-ifypsvkp4239244.shtml" ;
        try {
            Document doc = Jsoup.connect(url).header("Accept", "*/*")
                    .header("Accept-Encoding", "gzip, deflate")
                    .header("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3")
                    .header("Referer", "https://www.baidu.com/")
                    .header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0")
                    .timeout(5000)
                    .get();

            Elements container = doc.getElementsByClass("article-content clearfix");//class属性
            Document containerDoc = Jsoup.parse(container.toString());
            Elements module = containerDoc.getElementsByClass("article-content-left");
            Document moduleDoc = Jsoup.parse(module.toString());

//            Elements divsElements = doc.select("table");//得到table标签中的内容  
//            Elements divs = doc.select("div#content_left div[data-tools]");
            

            Elements clearfix = moduleDoc.select(".article");  //选择器的形式
            Document detail = Jsoup.parse(clearfix.toString());
            //输出html信息
            System.out.println("--------------------------------------html-----------------------------------------");
            System.out.println(detail);
            System.out.println("--------------------------------------html-----------------------------------------");
            
            //输出标题
            System.out.println("--------------------------------------title-----------------------------------------");
            Elements divs = detail.select("strong");
            for (Element div : divs){
                System.out.println(div.text());
            }
            
            Elements pngs = detail.select("img[src~=.(gif|jpg)]");

            for(Element png:pngs){  
                String pngText=png.text();
                String src=png.attr("src");//根据属性名获取src的路径  
                System.out.println(src+pngText);  
            }  
            
            //获取href路径
            System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
            Elements links = doc.getElementsByTag("a");
            for (Element link : links) {
              link.attr("href",link.attr("abs:href"));//绝对路径
              String linkHref = link.attr("href");
              System.out.println(linkHref);
              String linkText = link.text();
              System.out.println(linkText);
            }
            
            
          /* Elements ele=doc.getElementsByTag("p");//String  html="<p><a href=\"a.html\">a</p><p> 文本</p>";
            for(Element e :ele){
                System.out.println(e.text());
            }*/
            
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
      
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值