当前位置: 首页 > 工具软件 > HtmlCleaner > 使用案例 >

HtmlCleaner解析HTML

陆弘新
2023-12-01

HtmlCleaner是一款高效的HTML解析器,支持 Xpath语法提取HTML中的节点或元素。

1.添加依赖

<dependency>
   <groupId>net.sourceforge.htmlcleaner</groupId>
   <artifactId>htmlcleaner</artifactId>
   <version>2.22</version>
</dependency>

2.使用方法

 @RequestMapping("ana")
    public String analysis() throws IOException, XPatherException {
        Document document = Jsoup.connect("http://bj.xxxxx.com/jzbiaoqian/").timeout(5000).get();
        //Elements elements = document.select("div#list-job-id");
        String html = document.html();
        HtmlCleaner htmlCleaner = new HtmlCleaner();

        TagNode tagNode = htmlCleaner.clean(html);

        Object[] ns = tagNode.evaluateXPath("//div[@id='list-job-id']//dt//a");

        TagNode dlnode = ((TagNode)ns[0]);
        String url = dlnode.getAttributeByName("href");

        Document document1 = Jsoup.connect(url).timeout(5000).get();

        String  html1 = document1.html();
        HtmlCleaner htmlCleaner1 = new HtmlCleaner();
        TagNode tagNode1 = htmlCleaner1.clean(html1);
        Map<String,String> map = new HashMap<>();

        Object[] rs = tagNode1.evaluateXPath("//div[@class='d-c-left-hear']/h1") ;
        Object[] rs2 = tagNode1.evaluateXPath("//p[@class='data-sty mb-5']//span") ;
        Object[] rs3 = tagNode1.evaluateXPath("//ul[@class='clearfix pos-relat']/li") ;
        Object[] rs4 = tagNode1.evaluateXPath("//div[@class='deta-Corp']") ;

        map.put("gongsi",((TagNode)rs[0]).getText().toString());
        map.put("date",((TagNode)rs2[0]).getText().toString());
        for (Integer i =1;i<rs3.length;i++)
        {
            TagNode n = (TagNode)rs3[i];
            map.put(i.toString(),n.getText().toString());
        }
        map.put("miaoshu",((TagNode)rs4[0]).getText().toString());

        return map.toString();

    }

3.返回数据

{date=更新时间:05-22, 1=薪资待遇:100元/小时 , 2=最低学历:大专, 3= 工作经验:3-5年, 4=年龄:不限, gongsi=五险一金急聘初高中历史教师, 5=招聘人数:3人, 6=联系电话: 李老师 (联系我时,请说是在赶集网上看到的) 查看完整电话 , 7=工作地点:北京昌平区永安路10-2都市节奏小区12号楼底商2层 查看地图 , 8=职位标签:长期兼职 , 9=工作时间:星期五,星期六,星期日, miaoshu= 1 具有一定的教学经验和扎实的专业知识。 2 普通话标准,可带动课堂气氛和学生学习的积极性。 3 热爱教育事业,有较强的事业心责任感,有良好的师德,善表达,具有团队精神。 4有学校教育教学经验或课外辅导机构教学经验者优先。 5.能针对每一个学生情况制定出一套有效的学习方案。 }

 

 类似资料: