国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java利用htmlparser獲取html中想要的代碼具體實現

2019-11-26 15:42:29
字體:
來源:轉載
供稿:網友

這兩天需要做一些東西,需要抓取別人網頁中的一些信息。最后用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("http://?")==-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 { 'songItem': { 'sid': '113275822', 'sname': '我的要求不算高', 'author': '黃渤

則是從網頁中解析到的內容。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固安县| 桃园市| 陈巴尔虎旗| 朝阳区| 安福县| 库尔勒市| 黄浦区| 鞍山市| 察隅县| 阳曲县| 富源县| 咸宁市| 濮阳县| 余姚市| 仙桃市| 清水县| 南澳县| 越西县| 新宾| 吴堡县| 紫阳县| 房产| 修水县| 剑河县| 新蔡县| 安康市| 潞西市| 前郭尔| 旬邑县| 鹤山市| 阿拉善左旗| 石渠县| 陆河县| 洛川县| 乐平市| 昭苏县| 邓州市| 曲松县| 克山县| 嵊州市| 二手房|