java는 htmlparser를 이용하여 html에서 원하는 코드를 구체적으로 실현합니다

3237 단어 javahtmlparserhtml
요 며칠 동안 뭔가를 해야 하고, 다른 사람의 웹 페이지의 정보를 캡처해야 한다.마지막으로 htmlparser로 html를 해석합니다.
바로 코드에서 보십시오.
우선 가져오기 패키지는:import org입니다.htmlparser 아래 가방

List<Mp3> mp3List = new ArrayList<Mp3>();
        try{
            Parser parser = new Parser(htmlStr);// Parser, org.htmlparser。 。 html 。 URl
            parser.setEncoding("utf-8");//
            AndFilter filter =
                new AndFilter(
                              new TagNameFilter("div"),
                             new HasAttributeFilter("id","songListWrapper")
              );// filter div div id songListWrapper

              NodeList nodes = parser.parse(filter);// filter nodes
              Node node = nodes.elementAt(0);
              NodeList nodesChild = node.getChildren();
              Node[] nodesArr = nodesChild.toNodeArray();
              NodeList nodesChild2 = nodesArr[1].getChildren();
              Node[] nodesArr2 = nodesChild2.toNodeArray();
              Node nodeul = nodesArr2[1];
              Node[] nodesli = nodeul.getChildren().toNodeArray();// nodesli

           
              for(int i=2;i<nodesli.length;i++){
                  //System.out.println(nodesli[i].toHtml());
                  Node tempNode =  nodesli[i];
                  TagNode tagNode = new TagNode();// TagNode , Node TagNode
                  tagNode.setText(tempNode.toHtml());
                  String claStr = tagNode.getAttribute("class");//claStr bb-dotimg clearfix  song-item-hook { 'songItem': { 'sid': '113275822', 'sname': ' ', 'author': ' ' } }
                  claStr = claStr.replaceAll(" ", "");
                  if(claStr.indexOf("\\?")==-1){
                      Pattern pattern = Pattern.compile("[\\s\\wa-z\\-]+\\{'songItem':\\{'sid':'([\\d]+)','sname':'([\\s\\S]*)','author':'([\\s\\S]*)'\\}\\}");
                      Matcher matcher = pattern.matcher(claStr);
                      if(matcher.find()){
                          Mp3 mp3 = new Mp3();
                          mp3.setSid(matcher.group(1));
                          mp3.setSname(matcher.group(2));
                          mp3.setAuthor(matcher.group(3));
                          mp3List.add(mp3);
                          //for(int j=1;j<=matcher.groupCount();j++){
                              //System.out.print("   "+j+"--->"+matcher.group(j));
                          //}
                      }
                  }
                  //System.out.println(matcher.find());
              }

            }catch(Exception e){
                e.printStackTrace();
            }

이상은 제가 프로젝트에서 분석한 것입니다. 사용은 비교적 간단하고 손에 넣기 쉽습니다.///claStr는 bb-dotimg clearfix song-item-hook {'song Item': {'sid':'113275822','sname':'내 요구가 높지 않다','author':'황발
웹 페이지에서 해석된 내용이다.

좋은 웹페이지 즐겨찾기