欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java利用htmlparser獲取html中想要的代碼具體實現(xiàn)

 更新時間:2014年02月13日 16:11:47   作者:  
這篇文章主要介紹了java利用htmlparser獲取html中想要的代碼具體實現(xiàn),需要的朋友可以參考下

這兩天需要做一些東西,需要抓取別人網(wǎng)頁中的一些信息。最后用htmlparser來解析html。

直接從代碼中看吧:

首先需要注意導(dǎo)入包為:import org.htmlparser下面的包

復(fù)制代碼 代碼如下:

List<Mp3> mp3List = new ArrayList<Mp3>();
        try{
            Parser parser = new Parser(htmlStr);//初始化Parser,這里要注意導(dǎo)入包為org.htmlparser。這里參數(shù)有很多。這個地方我寫的是提前獲取好的html文本。也可以傳入URl對象
            parser.setEncoding("utf-8");//設(shè)置編碼機
            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轉(zhuǎn)換為TagNode才能獲取某一個標(biāo)簽的屬性
                  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 { 'songItem': { 'sid': '113275822', 'sname': '我的要求不算高', 'author': '黃渤

則是從網(wǎng)頁中解析到的內(nèi)容。

相關(guān)文章

  • java實現(xiàn)excel和txt文件互轉(zhuǎn)

    java實現(xiàn)excel和txt文件互轉(zhuǎn)

    本篇文章主要介紹了java實現(xiàn)excel和txt文件互轉(zhuǎn)的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • 2021年最新Redis面試題匯總(1)

    2021年最新Redis面試題匯總(1)

    在程序員面試過程中redis相關(guān)的知識是常被問到的話題。這篇文章主要介紹了幾道Redis面試題,整理一下分享給大家,感興趣的小伙伴們可以參考一下
    2021-07-07
  • MyBatis @Param注解的實現(xiàn)

    MyBatis @Param注解的實現(xiàn)

    本文主要介紹了MyBatis @Param注解的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • IDEA修改生成jar包名字的兩種方法實現(xiàn)

    IDEA修改生成jar包名字的兩種方法實現(xiàn)

    本文主要介紹了IDEA修改生成jar包名字的兩種方法實現(xiàn),通過簡單的步驟,您可以修改項目名稱并在打包時使用新的名稱,具有一定的參考價值,感興趣的可以了解下
    2023-08-08
  • Java中對XML的解析詳解

    Java中對XML的解析詳解

    目前我知道的JAVA解析XML的方式有:DOM, SAX, StAX;如果選用這幾種,感覺還是有點麻煩;如果使用:JAXB(Java Architecture for XML Binding),個人覺得太方便了
    2013-05-05
  • 理解 Java 核心基礎(chǔ)精髓解析

    理解 Java 核心基礎(chǔ)精髓解析

    這篇文章主要介紹了解 Java 核心基礎(chǔ)精髓解析問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-03-03
  • SpringBoot項目如何打war包問題詳解

    SpringBoot項目如何打war包問題詳解

    傳統(tǒng)的部署方式:將項目打成war包,放入tomcat的webapps目錄下面,啟動tomcat,即可訪問.文中有非常詳細(xì)的介紹,對正在學(xué)習(xí)springboot的小伙伴很有幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot項目在啟動后自動關(guān)閉的實現(xiàn)

    SpringBoot項目在啟動后自動關(guān)閉的實現(xiàn)

    我們在寫spring?boot?web項目時,有時會遇到啟動后立即關(guān)閉的情況,?本文主要介紹了SpringBoot項目在啟動后自動關(guān)閉的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Java 跳出遞歸循環(huán)問題解決辦法

    Java 跳出遞歸循環(huán)問題解決辦法

    這篇文章主要介紹了 Java 跳出遞歸循環(huán)問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java矢量隊列Vector使用示例

    Java矢量隊列Vector使用示例

    Vector類實現(xiàn)了一個動態(tài)數(shù)組。和ArrayList很相似,但是兩者是不同的Vector是同步訪問的;Vector包含了許多傳統(tǒng)的方法,這些方法不屬于集合框架
    2023-01-01

最新評論