美文网首页JavaJava学习笔记Java学习笔记
jsoup的maven依赖及jsoup解析html获取Eleme

jsoup的maven依赖及jsoup解析html获取Eleme

作者: 挑战者666888 | 来源:发表于2016-11-15 10:43 被阅读212次

    jsoup的maven依赖:
    jar包下载地址:http://note.youdao.com/noteshare?id=c2444dc21b286006fb9027683f2a5053

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

    package com.success.project;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;
    import com.alibaba.druid.support.logging.Log;
    import com.alibaba.druid.support.logging.LogFactory;
    
    public class TestJsoupParseHtml {
        private static final  Log log = LogFactory.getLog(Test.class);
        public static void main(String[] args) {
            System.out.println("helloworld");
            String url = "http://hotels.ctrip.com/hotel/beijing1/location94#ctm_ref=hod_hp_sb_lst";
            String encoding ="utf-8";
            String html = getHTMLResourceByUrl(url,encoding);
            System.out.println(html);//输出html
            String fengzhuang = Fengzhuang(html,encoding);
            System.out.println(fengzhuang);
        }
        public static String Fengzhuang(String html,String encoding ){
            Document parse = null; 
            List<Map<String,String>> list = new ArrayList<Map<String,String>>();
            //解析html,按照什么编码进行解析html
             parse = Jsoup.parse(html,encoding);
             Element elementById = parse.getElementById("hotel_list");
             Elements elementsByClass = elementById.getElementsByClass("searchresult_list");
             for (Element element : elementsByClass) {
            Map<String,String> map = new HashMap<String,String>();
                 //获取酒店的图片
                String imgSrc = element.getElementsByTag("img").attr("src");
                //获取酒店title
                String title = element.getElementsByTag("ima").attr("alt");
                //获取酒店的描述信息
              String desc = element.getElementsByClass("searchresult_htladdress").text();
              map.put("imgSrc", imgSrc);
              map.put("title",title);
              map.put("desc",desc);
              list.add(map);
             }
             return list.toString();
        }
        //获取html
        public static String getHTMLResourceByUrl(String url,String encoding){
            StringBuffer sb = new StringBuffer();
            URL urlObj =null;
            URLConnection openConnection =null;
            InputStreamReader isr = null;
            BufferedReader br = null;
            try {
                 urlObj = new URL(url);
                openConnection = urlObj.openConnection();
                isr = new InputStreamReader(openConnection.getInputStream(),encoding);
                //建立文件缓冲流
                 br = new BufferedReader(isr);
                //建立临时文件
                String temp = null;
                while((temp=br.readLine())!=null){
                    sb.append(temp+"\n");
                }
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                log.error("error message", e);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                log.error("error message", e);
            }finally{
                try {
                    if(isr !=null){
                        isr.close();
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    log.error("error message", e);
                }
            }
            return sb.toString();
        }
        
    }
    

    测试结果:

    [{title=, imgSrc=http://dimg12.c-ctrip.com/images/hotel/128000/127522/43427c590bc342fdb5fb6ca19b6abdf2_R_130_130.jpg, desc=朝阳区酒仙桥北路9号荧屏里4号,近酒仙桥路。 【 望京、酒仙桥、798地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/200u070000002izr2FE01_R_130_130.jpg, desc=朝阳区酒仙桥路13号,近望京SOHO,望京国际商业中心,798艺术区。 【 望京、酒仙桥、798地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/fd/hotel/g5/M08/8C/C1/CggYsFcrF_GAZHusAEAz_YYcL3E922_R_130_130.jpg, desc=朝阳区北苑路200号安苑东里三区10号院6号楼,近安苑路。 【 亚运村、奥体中心地区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/hotel/83000/82458/2eed25257045479499c6aed8ab3c49db_R_130_130.jpg, desc=朝阳区建国门外永安里中街25号2幢,近永安里地铁站。 【 北京站、建国门地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/200r050000000rygh9993_R_130_130.jpg, desc=朝阳区新源西里东街6号楼,近新东路口。 【 东直门、工体、雍和宫地区 燕莎、三里屯商业区】}, {title=, imgSrc=http://dimg12.c-ctrip.com/images/hotel/109000/108346/4b334f9eaebb4530bf30f8cef4f4d1c8_R_130_130.jpg, desc=朝阳区小黄庄北街2号2幢,近地铁5号线和平西桥站。 【 马甸、安贞地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/fd/hotel/g2/M02/E1/50/Cghzf1TPQVmAKfGwABNnbBtlWA8846_R_130_130.jpg, desc=朝阳区酒仙桥彩虹路798北门,近酒仙桥北路。 【 望京、酒仙桥、798地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/hotel/140000/139379/0165E24A503F416A81EC81545F993747_R_130_130.Jpg, desc=朝阳区静安里30号,近中国国际展览中心。 【 国展中心地区】}, {title=, imgSrc=http://dimg11.c-ctrip.com/images/fd/hotel/g1/M07/E2/EB/CghzfVS405uAGRNpAAEsvt174L4590_R_130_130.jpg, desc=朝阳区霄云路霞光里30号院6号楼。 【 燕莎、三里屯商业区】}, {title=, imgSrc=http://dimg12.c-ctrip.com/images/fd/hotel/g5/M04/8C/99/CggYsVcrDxSAPqEEADgEutlyRds555_R_130_130.jpg, desc=朝阳区农光东里34号楼,近劲松桥。 【 劲松、潘家园地区】}, {title=, imgSrc=http://dimg11.c-ctrip.com/images/fd/hotel/g4/M04/8D/74/CggYHFYtiVqAIy4KAAD17Zgk6nk251_R_130_130.jpg, desc=朝阳区广渠路15号金茂府23号院7号楼,近东四环大郊亭桥西北角。 【 国贸地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/fd/hotel/g5/M08/91/28/CggYsVcrHJOAID85ADJRAML-1SM223_R_130_130.jpg, desc=朝阳区望京湖光中街8号,近南湖南路。 【 望京、酒仙桥、798地区】}, {title=, imgSrc=http://dimg11.c-ctrip.com/images/200u050000000s3nk9EE3_R_130_130.jpg, desc=朝阳区西大望南路南口周庄嘉园南里1号楼,临近弘燕路路口。 【 劲松、潘家园地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/fd/hotel/g6/M02/CB/C2/CggYtFcxG4eALX5SAAHd53oTmSU782_R_130_130.jpg, desc=朝阳区新东路8号首开铂郡南区4号楼1门三层170房间,近幸福三村四巷。 【 东直门、工体、雍和宫地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/200b060000001xgcj7010_R_130_130.jpg, desc=朝阳区东直门外大街28号港湾国际16层,近春秀路路口。 【 东直门、工体、雍和宫地区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/fd/hotel/g3/M03/56/47/CggYG1X4j5KAI9oFAAKbsgTNU-k330_R_130_130.jpg, desc=朝阳区东四环红领巾桥东400米,路北50米,近十里堡地铁站。 【 燕莎、三里屯商业区 国贸地区】}, {title=, imgSrc=http://dimg12.c-ctrip.com/images/200o070000002rvo41255_R_130_130.jpg, desc=朝阳区东三环北路8号,近农展馆。 【 燕莎、三里屯商业区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/t1/hotel/86000/85893/eeafbfdd4fcc4df1b617e50a8c544c9e_R_130_130.jpg, desc=朝阳区霄云路26号,近天泽路。 【 燕莎、三里屯商业区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/t1/hotel/1287000/1286149/888f353e11424c9da1360ced3c317a48_R_130_130.jpg, desc=朝阳区建国门南大街2号,近建外大街。 【 北京站、建国门地区 国贸地区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/hotel/375000/374421/3412b6d6ccce488188185fb699bb26e5_R_130_130.jpg, desc=朝阳区亮马桥路48号,近燕莎桥。 【 燕莎、三里屯商业区 东直门、工体、雍和宫地区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/t1/hotel/1199000/1198300/db2629b825574329842aaaa89f28e146_R_130_130.jpg, desc=朝阳区呼家楼京广中心,近京广桥。 【 国贸地区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/hotel/20000/19267/4d01b49ad91245cd97f4c55f4569d680_R_130_130.jpg, desc=朝阳区北四环中路华严北里8号,健翔桥辅路东南侧。 【 亚运村、奥体中心地区】}, {title=, imgSrc=http://dimg10.c-ctrip.com/images/hotel/397000/396423/77d4c05c5f114ab59e8cab81d77a132c_R_130_130.jpg, desc=朝阳区新源南路2号,燕莎友谊商城正对面。 【 燕莎、三里屯商业区 国展中心地区】}, {title=, imgSrc=http://dimg13.c-ctrip.com/images/2009050000000ysv59652_R_130_130.jpg, desc=朝阳区亮马桥路50号,近燕莎友谊商城。 【 燕莎、三里屯商业区】}, {title=, imgSrc=http://dimg12.c-ctrip.com/images/t1/hotel/1000/26/76e4fb4dc72344fcb6024390fe9305a7_R_130_130.jpg, desc=朝阳区北辰东路8号,奥林匹克中心对面。 【 亚运村、奥体中心地区】}, {title=, imgSrc=, desc=}]

    相关文章

      网友评论

      本文标题:jsoup的maven依赖及jsoup解析html获取Eleme

      本文链接:https://www.haomeiwen.com/subject/bmbkpttx.html