jsoup解析html元素,辅助实现元素定位

直接贴出代码

package configS;

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

public class test_html {
  //实现格式化输出
    static Formatter formatter = new Formatter(System.out);
    public static void priteTitle(String key,String value){
        formatter.format("%-15s %-20s\n",key,value);
    }
    public static void main(String[] args) throws IOException {
    /**
    *不同的页面传入方式,这是第一种
    */
       String html = "<html><head><title>First parse</title></head>"
                   + "<body><p>Parsed HTML into a doc.</p></body></html>";
        Document doc = Jsoup.parse(html);
        
    /**
    *不同的页面传入方式,这是第二种
    */    
        Document doc=Jsoup.connect("http://www.baidu.com").get();
       //打印页面的title
        System.out.println(doc.title());
       
        //获取页面id元素
        Elements elementList=doc.getElementsByAttribute("id");
        //在标签a中
        Elements elementListAnnx = doc.getElementsByTag("a");
        elementList.addAll(elementListAnnx);

       //根据所得到的内容,只输出title和id
        for(Element element:elementListAnnx){
            String key=element.attr("name");
            String value=element.attr("href");
            if(!key.isEmpty()&&!value.isEmpty()){
            	//自己定义输出样式
//                System.out.println("Param name:"+key+"\nParam value:"+value);
				//格式化输出方法
                priteTitle(key,value);
            }
        }
            //不用for循环,直接全部输出
//            System.out.println(elementListAnnx.toString());
          //别忘了释放
        formatter.close();
    }

}

结果:
打印标题和全部:

百度一下,你就知道
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
<a href="http://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
<a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
<a href="http://v.baidu.com" name="tj_trvideo" class="mnav">视频</a>
<a href="http://tieba.baidu.com" name="tj_trtieba" class="mnav">贴吧</a>
<a href="http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1" name="tj_login" class="lb">登录</a>
<a href="//www.baidu.com/more/" name="tj_briicon" class="bri" style="display: block;">更多产品</a>
<a href="http://home.baidu.com">关于百度</a>
<a href="http://ir.baidu.com">About Baidu</a>
<a href="http://www.baidu.com/duty/">使用百度前必读</a>
<a href="http://jianyi.baidu.com/" class="cp-feedback">意见反馈</a>

按照格式,打印name对应的地址:

tj_trnews       http://news.baidu.com
tj_trhao123     http://www.hao123.com
tj_trmap        http://map.baidu.com
tj_trvideo      http://v.baidu.com  
tj_trtieba      http://tieba.baidu.com
tj_login        http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1
tj_briicon      //www.baidu.com/more/

猜你喜欢

转载自blog.csdn.net/qq_39704682/article/details/86610825