<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    泰仔在線

    java學(xué)習(xí),心情日記,繽紛時(shí)刻
    posts - 100, comments - 34, trackbacks - 0, articles - 0

    今天主要研究了Nutch中的html頁面的解析問題,因?yàn)槲业娜蝿?wù)是從頁面中提取特定的文本,因此首先要找到Nutch如何將html中的文本提取出來。Nutch提供了兩種html解析器,nekohtml和tagsoup,我采用了neko的解析器,在看了代碼后,發(fā)現(xiàn)其提取文本的方法在org.apache.nutch.parse.html中的DOMContentUtils文件中,主要的函數(shù)是getTextHelper。下面做一下解釋。

    private boolean getTextHelper(StringBuffer sb, Node node,
                                                 boolean abortOnNestedAnchors,
                                                 int anchorDepth) {
        boolean abort = false;
        NodeWalker walker = new NodeWalker(node);// NodeWalk類用來非遞歸遍歷DOM樹節(jié)點(diǎn)
        int myint=1;
       
        while (walker.hasNext()){ //如果存在節(jié)點(diǎn)
       
          Node currentNode = walker.nextNode();//獲取下一個(gè)節(jié)點(diǎn)
          String nodeName = currentNode.getNodeName();//獲取節(jié)點(diǎn)名
          short nodeType = currentNode.getNodeType();//節(jié)點(diǎn)類型
          
          if ("script".equalsIgnoreCase(nodeName)) {//不處理腳本
            walker.skipChildren();
          }
          if ("style".equalsIgnoreCase(nodeName)) {//不處理style
            walker.skipChildren();
          }
          if (abortOnNestedAnchors && "a".equalsIgnoreCase(nodeName)) {//檢測(cè)是否嵌套
            anchorDepth++;
            if (anchorDepth > 1) {
              abort = true;
              break;
            }       
          }
          if (nodeType == Node.COMMENT_NODE) {//不處理注釋
            walker.skipChildren();
          }
          if (nodeType == Node.TEXT_NODE) {
            // cleanup and trim the value
            String text = currentNode.getNodeValue();//獲取文本內(nèi)容
            text = text.replaceAll("\\s+", " ");//消除所有空格和轉(zhuǎn)行等字符
       text = text.trim();
            if (text.length() > 0) {
              if (sb.length() > 0) sb.append(' ');
             sb.append(text);
            }
          }
        }
    }

    調(diào)用這個(gè)函數(shù)的類是htmlParser類,如果想自己寫一個(gè)提取文本的函數(shù),可以做相應(yīng)修改。

    轉(zhuǎn)自:實(shí)習(xí)日記(六)

    Feedback

    # re: Nutch中的html頁面的解析問題  回復(fù)  更多評(píng)論   

    2013-03-19 16:53 by gongshijun
    怎樣改啊,nutch1.6都沒有你說的那些東西,找不到啊
    主站蜘蛛池模板: 免费A级毛片无码A∨中文字幕下载| 成人国产网站v片免费观看| 精品成人免费自拍视频| 亚洲午夜日韩高清一区| 国产精品久久久久久亚洲小说 | 久久精品国产这里是免费| 亚洲乱码无码永久不卡在线| 春意影院午夜爽爽爽免费| 亚洲一区二区三区在线播放| 日韩在线一区二区三区免费视频| 亚洲国产综合无码一区二区二三区 | 人妻仑刮八A级毛片免费看| 免费看一级做a爰片久久| 免费中文字幕视频| 亚洲色图综合在线| 青柠影视在线观看免费高清 | 波多野结衣在线免费视频| 亚洲乱人伦精品图片| 人禽杂交18禁网站免费| 女性自慰aⅴ片高清免费| 无码亚洲成a人在线观看| 亚洲精品天堂成人片?V在线播放| 一级做a免费视频观看网站| 亚洲色成人中文字幕网站| 久久国产精品免费专区| 亚洲国产精品日韩在线观看| 天天拍拍天天爽免费视频| 免费人成视频在线观看免费| 亚洲伊人久久精品影院| 亚欧免费视频一区二区三区| 亚洲精品中文字幕无码A片老| 高清在线亚洲精品国产二区| 日本道免费精品一区二区| 亚洲六月丁香六月婷婷蜜芽 | 亚洲香蕉网久久综合影视| 日本在线看片免费人成视频1000 | 草久免费在线观看网站| 久久亚洲精精品中文字幕| 精品无码国产污污污免费| 国产特黄特色的大片观看免费视频| 亚洲欧洲日韩国产综合在线二区|