亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? segmentreader.java

?? 爬蟲數據的改進,并修正了一些bug
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    if (parseTextReader != null) {
      if (pt != null) {
        if (parseTextReader.get(n, pt) == null) valid = false;
      } else parseTextReader.seek(n);
    }
    if (parseDataReader != null) {
      if (pd != null) {
        if (parseDataReader.get(n, pd) == null) valid = false;
      } else parseDataReader.seek(n);
    }
    key = n;
    return valid;
  }
  
  private ParseText _pt = new ParseText();
  private ParseData _pd = new ParseData();
  
  /** Read values from all open readers. Note: even if some of the storage objects
   * are null, but if respective readers are open, an underlying next() operation will
   * be performed for all streams anyway, to ensure that the whole entry is valid.
   */
  public synchronized boolean next(ParseText pt, ParseData pd) throws IOException {
    boolean valid = true;
    ParseText rpt = (pt == null) ? _pt : pt;
    ParseData rpd = (pd == null) ? _pd : pd;

    if (parseTextReader != null)
      if (parseTextReader.next(rpt) == null) valid = false;
    if (parseDataReader != null)
      if (parseDataReader.next(rpd) == null) valid = false;
    key++;
    return valid;
  }
  
  /** Seek to a position in all readers. */
  public synchronized void seek(long n) throws IOException {
    if (parseTextReader != null) parseTextReader.seek(n);
    if (parseDataReader != null) parseDataReader.seek(n);
    key = n;
  }

  /** Return the current key position. */
  public long key() {
    return key;
  }

  /** Reset all readers. */
  public synchronized void reset() throws IOException {
    if (parseTextReader != null) parseTextReader.reset();
    if (parseDataReader != null) parseDataReader.reset();
  }

  /** Close all readers. */
  public synchronized void close() {
    if (parseTextReader != null) try {
      parseTextReader.close();
    } catch (Exception e) {};
    if (parseDataReader != null) try {
      parseDataReader.close();
    } catch (Exception e) {};
  }
  
  /**
   * Dump the segment's content in human-readable format.
   * @param sorted if true, sort segment entries by URL (ascending). If false,
   * output entries in the order they occur in the segment.
   * @param output where to dump to
   * @throws Exception
   */
  /****
  public synchronized void dump(boolean sorted, PrintStream output) throws Exception {
    reset();
    FetcherOutput fo = new FetcherOutput();
    Content co = new Content();
    ParseData pd = new ParseData();
    ParseText pt = new ParseText();
    long recNo = 0L;
    if (!sorted) {
      while(next(pt, pd)) {
        output.println("Recno:: " + recNo++);
        output.println("FetcherOutput::\n" + fo.toString());
        if (parseDataReader != null)
          output.println("ParseData::\n" + pd.toString());
        if (parseTextReader != null)
          output.println("ParseText::\n" + pt.toString());
        output.println("");
      }
    } else {
      File unsortedFile = new File(segmentDir, ".unsorted");
      File sortedFile = new File(segmentDir, ".sorted");
      nfs.delete(unsortedFile);
      nfs.delete(sortedFile);
      SequenceFile.Writer seqWriter = new SequenceFile.Writer(nfs,
              unsortedFile.toString(), UTF8.class, LongWritable.class);
      FetchListEntry fle;
      LongWritable rec = new LongWritable();
      UTF8 url = new UTF8();
      String urlString;
      while (fetcherReader.next(fo) != null) {
        fle = fo.getFetchListEntry();
        urlString = fle.getPage().getURL().toString();
        rec.set(recNo);
        url.set(urlString);
        seqWriter.append(url, rec);
        recNo++;
      }
      seqWriter.close();
      // sort the SequenceFile
      long start = System.currentTimeMillis();

      SequenceFile.Sorter sorter = new SequenceFile.Sorter(nfs,
              new UTF8.Comparator(), LongWritable.class);

      sorter.sort(unsortedFile.toString(), sortedFile.toString());

      float localSecs = (System.currentTimeMillis() - start) / 1000.0f;
      LOG.info(" - sorted: " + recNo + " entries in " + localSecs + "s, "
        + (recNo/localSecs) + " entries/s");

      nfs.delete(unsortedFile);
      SequenceFile.Reader seqReader = new SequenceFile.Reader(nfs, sortedFile.toString());
      while (seqReader.next(url, rec)) {
        recNo = rec.get();
        get(recNo, fo, co, pt, pd);
        output.println("Recno:: " + recNo++);
        output.println("FetcherOutput::\n" + fo.toString());
        if (contentReader != null)
          output.println("Content::\n" + co.toString());
        if (parseDataReader != null)
          output.println("ParseData::\n" + pd.toString());
        if (parseTextReader != null)
          output.println("ParseText::\n" + pt.toString());
        output.println("");
      }
      seqReader.close();
      nfs.delete(sortedFile);
    }
  }
***/
  /** Command-line wrapper. Run without arguments to see usage help. */
  public static void main(String[] args) throws Exception {
    if (args.length == 0) {
      usage();
      return;
    }
    SegmentReader reader = null;
    NutchFileSystem nfs = NutchFileSystem.parseArgs(args, 0);
    String segDir = null;
    Vector dirs = new Vector();
    boolean fix = false;
    boolean list = false;
    boolean dump = false;
    boolean sorted = false;
    boolean withParseText = true;
    boolean withParseData = true;
    boolean withContent = true;
    for (int i = 0; i < args.length; i++) {
      if (args[i] != null) {
        if (args[i].equals("-noparsetext")) withParseText = false;
        else if (args[i].equals("-noparsedata")) withParseData = false;
        else if (args[i].equals("-nocontent")) withContent = false;
        else if (args[i].equals("-fix")) fix = true;
        else if (args[i].equals("-dump")) dump = true;
        else if (args[i].equals("-dumpsort")) {
          dump = true;
          sorted = true;
        } else if (args[i].equals("-list")) list = true;
        else if (args[i].equals("-dir")) segDir = args[++i];
        else dirs.add(new File(args[i]));
      }
    }
    if (segDir != null) {
      File sDir = new File(segDir);
      if (!sDir.exists() || !sDir.isDirectory()) {
        LOG.warn("Invalid path: " + sDir);
      } else {
        File[] files = sDir.listFiles(new FileFilter() {
          public boolean accept(File f) {
            return f.isDirectory();
          }
        });
        if (files != null && files.length > 0) {
          for (int i = 0; i < files.length; i++) dirs.add(files[i]);
        }
      }
    }
    if (dirs.size() == 0) {
      LOG.warn("No input segment dirs.");
      usage();
      return;
    }
    long total = 0L;
    int cnt = 0;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'-'HH:mm:ss");
    DecimalFormat df = new DecimalFormat("########");
    df.setParseIntegerOnly(true);
    if (list)
      LOG.info("PARSED?\tSTARTED\t\t\tFINISHED\t\tCOUNT\tDIR NAME");
    for (int i = 0; i < dirs.size(); i++) {
      File dir = (File)dirs.get(i);
      try {
        reader = new SegmentReader(nfs, dir,
              withParseText, withParseData, fix);
        if (list) {
          LOG.info(df.format(reader.size) +
                  "\t" + dir);
        }
        total += reader.size;
        cnt++;
        //if (dump) reader.dump(sorted, System.out);
      } catch (Throwable t) {
        LOG.error(t.getMessage());
      }
    }
    if (list)
      LOG.info("TOTAL: " + total + " entries in " + cnt + " segments.");
  }
  
  private static void usage() {
    System.err.println("SegmentReader [-fix] [-dump] [-dumpsort] [-list] [-nocontent] [-noparsedata] [-noparsetext] (-dir segments | seg1 seg2 ...)");
    System.err.println("\tNOTE: at least one segment dir name is required, or '-dir' option.");
    System.err.println("\t-fix\t\tautomatically fix corrupted segments");
    System.err.println("\t-dump\t\tdump segment data in human-readable format");
    System.err.println("\t-dumpsort\tdump segment data in human-readable format, sorted by URL");
    System.err.println("\t-list\t\tprint useful information about segments");
    System.err.println("\t-nocontent\tignore content data");
    System.err.println("\t-noparsedata\tignore parse_data data");
    System.err.println("\t-nocontent\tignore parse_text data");
    System.err.println("\t-dir segments\tdirectory containing multiple segments");
    System.err.println("\tseg1 seg2 ...\tsegment directories\n");
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品图片| 亚洲女同ⅹxx女同tv| 91福利在线看| 亚洲一区在线观看视频| 国内精品国产成人| 日日骚欧美日韩| 中文字幕一区二区三中文字幕| 日韩午夜中文字幕| 欧美日韩dvd在线观看| 国产99久久精品| 欧美日韩一区久久| 欧美精品一区二区三区在线播放| 国产日产欧美一区二区三区| 亚洲精品你懂的| 国产综合色产在线精品| 色视频欧美一区二区三区| 日韩欧美中文字幕一区| 亚洲女同一区二区| 国产精品综合二区| 欧美日韩亚洲另类| 成人欧美一区二区三区白人| 日韩成人一级片| 91天堂素人约啪| 国产精品久久久久四虎| 婷婷久久综合九色国产成人| 成人不卡免费av| 26uuu国产电影一区二区| 亚洲国产视频一区| 91麻豆.com| 国产精品美女视频| 精品一区二区三区免费播放 | 久久国产尿小便嘘嘘| 在线观看日韩高清av| 国产精品国产自产拍在线| 国产盗摄视频一区二区三区| 91精品在线免费| 亚欧色一区w666天堂| 一本大道久久a久久综合| 中文字幕乱码亚洲精品一区| 国内不卡的二区三区中文字幕| 在线播放日韩导航| 午夜成人在线视频| 666欧美在线视频| 久久99国内精品| www亚洲一区| 国产一级精品在线| 中文字幕av资源一区| 国产二区国产一区在线观看| 久久精品视频免费| 床上的激情91.| 亚洲视频在线一区| 欧美视频精品在线| 蜜桃视频一区二区| 国产精品一二三四五| 精品久久99ma| 91精品国产91热久久久做人人| 国产精品网友自拍| 成人免费的视频| 91丨国产丨九色丨pron| 久久精品视频在线免费观看| 丁香婷婷深情五月亚洲| 成人免费一区二区三区视频 | 亚洲欧美一区二区三区国产精品| 91在线观看免费视频| 亚洲视频免费在线观看| 成人黄色大片在线观看| 一区二区三区产品免费精品久久75| 欧美日韩视频在线观看一区二区三区| 首页亚洲欧美制服丝腿| 精品国产乱码久久久久久牛牛| 国产传媒久久文化传媒| 亚洲愉拍自拍另类高清精品| 久久综合色之久久综合| 一本色道久久综合狠狠躁的推荐| 全国精品久久少妇| 一区二区中文字幕在线| 日韩一区二区在线免费观看| av电影在线观看一区| 免费观看成人av| 国产精品美女久久福利网站| 在线91免费看| 不卡高清视频专区| 丝袜诱惑制服诱惑色一区在线观看| 国产女人aaa级久久久级| 91麻豆精品国产91久久久久久| 国模娜娜一区二区三区| 亚洲成人激情av| 一区二区三区在线视频免费 | 亚洲综合清纯丝袜自拍| 国产欧美精品区一区二区三区| 欧美一区在线视频| 在线精品亚洲一区二区不卡| 99久久精品免费看国产免费软件| 久久精品国产亚洲高清剧情介绍 | 亚洲日本欧美天堂| 久久先锋影音av鲁色资源网| 日韩欧美一级精品久久| 欧美日韩国产成人在线91| 91一区在线观看| av不卡在线播放| 91在线视频官网| 97精品超碰一区二区三区| 成人久久视频在线观看| 国产成人av自拍| 国产一区二区三区最好精华液| 国内一区二区视频| 韩国一区二区在线观看| 国产精品亚洲一区二区三区妖精 | 国产激情视频一区二区三区欧美 | 国产一区二区调教| 激情五月婷婷综合网| 国产盗摄一区二区| 色一情一乱一乱一91av| 日本高清成人免费播放| 日韩午夜在线影院| 国产精品久久777777| 亚洲国产va精品久久久不卡综合| 日本女人一区二区三区| 国产精华液一区二区三区| 91免费在线视频观看| 777xxx欧美| 亚洲视频中文字幕| 精品一区二区三区免费视频| 91美女在线看| 日韩精品一区二| 亚洲午夜久久久久| 国产美女娇喘av呻吟久久| 91久久精品一区二区三| 精品99999| 亚洲一区免费观看| 国产一区视频导航| 欧美怡红院视频| 国产精品久久久久久久久动漫 | 国产一区二区电影| 欧美日本韩国一区二区三区视频| 国产精品免费人成网站| 国产一区高清在线| 91麻豆精品国产91久久久资源速度| 国产精品成人免费在线| 国产伦精品一区二区三区免费| 欧美在线999| 国产精品美女久久福利网站| 国产一区在线观看视频| 欧美一区二区三区啪啪| 亚洲成人你懂的| 色综合视频一区二区三区高清| 久久综合色鬼综合色| 久久99精品久久久久久久久久久久| 日本丰满少妇一区二区三区| 国产精品久久午夜夜伦鲁鲁| 高清在线不卡av| 欧美激情一区不卡| 成人激情午夜影院| 中文字幕av一区二区三区高| 国产999精品久久| 国产精品久久久久久户外露出| youjizz久久| 亚洲欧洲韩国日本视频| 色综合天天综合网天天看片| 亚洲免费在线观看视频| 91丨porny丨中文| 亚洲自拍偷拍综合| 91精品国产综合久久精品| 奇米综合一区二区三区精品视频| 欧美一区二区三区日韩视频| 国产一区二区三区在线观看免费视频| 精品国产凹凸成av人导航| 国产成人午夜高潮毛片| 亚洲精品高清视频在线观看| 欧美日韩国产bt| 国产高清精品在线| 亚洲精品久久久久久国产精华液| 欧美人牲a欧美精品| 国产一区二区三区观看| 亚洲乱码国产乱码精品精可以看| 在线观看欧美日本| 久久成人麻豆午夜电影| 国产精品乱码久久久久久| 欧美日韩一级片网站| 国产精品99久久久久久久女警| 亚洲欧洲制服丝袜| 日韩精品一区二区三区蜜臀| 99精品视频在线免费观看| 麻豆精品视频在线观看视频| 国产精品乱码久久久久久| 欧美另类一区二区三区| 波多野结衣中文字幕一区二区三区| 亚洲成人第一页| 亚洲天堂免费看| 久久综合九色综合97婷婷女人| 欧美无乱码久久久免费午夜一区 | 蜜臀精品一区二区三区在线观看| 精品国产91亚洲一区二区三区婷婷| 色综合色综合色综合色综合色综合| 视频一区二区中文字幕| 亚洲男人天堂av| 亚洲欧美怡红院| 精品久久五月天| 欧美xxxx在线观看| 欧美猛男gaygay网站|