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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fetcheroutput.java

?? 爬蟲數(shù)據(jù)的改進(jìn),并修正了一些bug
?? JAVA
字號(hào):
/* Copyright (c) 2003 The Nutch Organization.  All rights reserved.   */
/* Use subject to the conditions in http://www.nutch.org/LICENSE.txt. */

package net.nutch.fetcher;

import java.io.*;
import java.util.Arrays;
import java.util.Date;

import net.nutch.io.*;
import net.nutch.fs.*;
import net.nutch.util.*;
import net.nutch.pagedb.FetchListEntry;
import net.nutch.tools.UpdateDatabaseTool;
import net.nutch.parse.Outlink;

/*********************************************
 * An entry in the fetcher's output.  This includes all of the fetcher output
 * except the raw and stripped versions of the content, which are placed in
 * separate files.
 *
 * <p>
 * Note by John Xing: As of 20041022, option -noParsing is introduced
 * in Fetcher.java. This changes fetcher behavior. Accordingly
 * there are necessary modifications in this class.
 * Check Fetcher.java and ParseSegment.java for details.
 *
 * @author Doug Cutting
 *********************************************/
public final class FetcherOutput implements Writable {
  public static final String DIR_NAME = "fetcher";
  // 20041024, xing, 
  // When fetcher is run with option -noParsing, DIR_NAME_NP is created
  // instead of DIR_NAME. In separate pass, ParseSegment.java looks for
  // DIR_NAME_NP and generates DIR_NAME. Check ParseSegment.java for more info.
  public static final String DIR_NAME_NP = DIR_NAME+"_output";
  public static final String DONE_NAME = "fetcher.done";
  public static final String ERROR_NAME = "fetcher.error";

  private final static byte VERSION = 4;

  public final static byte RETRY = 0;
  public final static byte SUCCESS = 1;
  public final static byte NOT_FOUND = 2;
  public final static byte CANT_PARSE = 4; // fetched, but can't be parsed

  private FetchListEntry fetchListEntry;
  private MD5Hash md5Hash;
  private int status;
  private long fetchDate;

  public FetcherOutput() {}

  public FetcherOutput(FetchListEntry fetchListEntry,
                       MD5Hash md5Hash, int status) {
    this.fetchListEntry = fetchListEntry;
    this.md5Hash = md5Hash;
    this.status = status;
    this.fetchDate = System.currentTimeMillis();
  }

  public byte getVersion() { return VERSION; }

  public final void readFields(DataInput in) throws IOException {
    byte version = in.readByte();                 // read version
    fetchListEntry = FetchListEntry.read(in);
    md5Hash = MD5Hash.read(in);
    status = in.readByte();

    if (version < 4) {
      UTF8.readString(in);                        // read & ignore title
      int totalOutlinks = in.readInt();           // read & ignore outlinks
      for (int i = 0; i < totalOutlinks; i++) {
        Outlink.skip(in);
      }
    }

    fetchDate = (version > 1) ? in.readLong() : 0; // added in version=2
  }

  public final void write(DataOutput out) throws IOException {
    out.writeByte(VERSION);                       // store current version
    fetchListEntry.write(out);
    md5Hash.write(out);
    out.writeByte(status);
    out.writeLong(fetchDate);
  }

  public static FetcherOutput read(DataInput in) throws IOException {
    FetcherOutput fetcherOutput = new FetcherOutput();
    fetcherOutput.readFields(in);
    return fetcherOutput;
  }

  //
  // Accessor methods
  //
  public FetchListEntry getFetchListEntry() { return fetchListEntry; }
  public MD5Hash getMD5Hash() { return md5Hash; }
  public int getStatus() { return status; }
  public void setStatus(int status) { this.status = status; }
  public long getFetchDate() { return fetchDate; }
  public void setFetchDate(long fetchDate) { this.fetchDate = fetchDate; }

  // convenience methods
  public UTF8 getUrl() { return getFetchListEntry().getUrl(); }
  public String[] getAnchors() { return getFetchListEntry().getAnchors(); }

  public boolean equals(Object o) {
    if (!(o instanceof FetcherOutput))
      return false;
    FetcherOutput other = (FetcherOutput)o;
    return
      this.fetchListEntry.equals(other.fetchListEntry) &&
      this.md5Hash.equals(other.md5Hash) &&
      (this.status == other.status);
  }


  public String toString() {
    StringBuffer buffer = new StringBuffer();
    buffer.append("FetchListEntry: " + fetchListEntry + "Fetch Result:\n" );
    buffer.append("MD5Hash: " + md5Hash + "\n" );
    buffer.append("Status: " + status + "\n" );
    buffer.append("FetchDate: " + new Date(fetchDate) + "\n" );
    return buffer.toString();
  }

  public static void main(String argv[]) throws Exception {
    String usage = "FetcherOutput (-local <path> | -ndfs <path> <namenode:port>) (-recno <recno> | -dumpall) [-filename <filename>]";
    if (argv.length == 0 || argv.length > 4) {
      System.out.println("usage:" + usage);
      return;
    }

    // Process the args
    String filename = FetcherOutput.DIR_NAME;
    boolean dumpall = false;
    int recno = -1;
    int i = 0;
    NutchFileSystem nfs = NutchFileSystem.parseArgs(argv, i);
    for (; i < argv.length; i++) {
        if ("-recno".equals(argv[i])) {
            recno = Integer.parseInt(argv[i+1]);
            i++;
        } else if ("-dumpall".equals(argv[i])) {
            dumpall = true;
        } else if ("-filename".equals(argv[i])) {
            filename = argv[i+1];
            i++;
        }
    }

    // Now carry out the command
    ArrayFile.Reader fetcher = new ArrayFile.Reader(nfs, filename);
    try {
      FetcherOutput fo = new FetcherOutput();

      if (dumpall) {
        while ((fo = (FetcherOutput) fetcher.next(fo)) != null) {
          recno++;
          System.out.println("Retrieved " + recno + " from file " + filename);
          System.out.println(fo);
        }
      } else if (recno >= 0) {
        fetcher.get(recno, fo);
        System.out.println("Retrieved " + recno + " from file " + filename);
        System.out.println(fo);
      }
    } finally {
      fetcher.close();
    }
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新高清无码专区| 久久青草欧美一区二区三区| 亚洲综合免费观看高清完整版 | 国产精品久久久久久妇女6080| 韩国av一区二区三区四区| 国产三级三级三级精品8ⅰ区| 成人午夜又粗又硬又大| 国产精品久久久久久久午夜片| av毛片久久久久**hd| 伊人一区二区三区| 51精品秘密在线观看| 极品少妇一区二区| 国产精品素人一区二区| 91高清在线观看| 美国精品在线观看| 欧美激情一二三区| 欧美亚洲综合网| 久久99精品网久久| 自拍偷拍国产精品| 欧美一级视频精品观看| 成人免费看黄yyy456| 亚洲国产日韩一级| 久久久精品蜜桃| 在线看不卡av| 国产一区二区成人久久免费影院| 综合久久给合久久狠狠狠97色| 欧美日韩在线精品一区二区三区激情| 奇米影视一区二区三区小说| 久久精品人人爽人人爽| 欧美日韩你懂得| 成人免费毛片片v| 日韩精品欧美成人高清一区二区| 久久久久久久久久久久久女国产乱| 色欧美乱欧美15图片| 精品一区二区在线视频| 亚洲美女视频一区| 久久精品视频免费| 欧美一区二区三区性视频| 成人性视频网站| 蜜臀av一区二区在线免费观看| 亚洲欧美一区二区不卡| 精品国产百合女同互慰| 欧美丝袜丝交足nylons图片| 成人免费高清在线| 久久99久久99小草精品免视看| 亚洲欧美激情在线| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美日韩国产一二三| 不卡的av电影| 国产伦精品一区二区三区免费迷 | 欧洲精品一区二区三区在线观看| 久久99在线观看| 亚洲午夜影视影院在线观看| 国产精品三级视频| 精品成人a区在线观看| 欧美性视频一区二区三区| 不卡的av电影| 成人免费视频播放| 国产成人丝袜美腿| 精品一区二区三区在线观看国产| 亚洲18影院在线观看| 久久综合综合久久综合| 欧美视频日韩视频| 亚洲a一区二区| 国产精品妹子av| 久久亚区不卡日本| 欧美tickling挠脚心丨vk| 欧美午夜精品免费| 99久久99久久精品免费看蜜桃| 国产精品一区二区果冻传媒| 日本视频在线一区| 天堂一区二区在线| 亚洲国产毛片aaaaa无费看| 日韩毛片精品高清免费| 国产精品毛片高清在线完整版| 久久久久久久久久久久久夜| 久久美女艺术照精彩视频福利播放| 欧美一区国产二区| 日韩一级片在线观看| 日韩精品在线网站| 日韩精品一区二区三区在线播放 | 国产精品欧美久久久久一区二区| 久久久久久久av麻豆果冻| 日韩欧美国产精品| 久久综合成人精品亚洲另类欧美| 久久欧美一区二区| 国产精品国产三级国产aⅴ原创| 国产精品久久久久久久岛一牛影视| 国产精品美女视频| 亚洲色图第一区| 亚洲线精品一区二区三区八戒| 婷婷综合久久一区二区三区| 日韩综合一区二区| 国产呦精品一区二区三区网站| 国产精品18久久久久久久久 | 精品一区二区在线免费观看| 久久精品国产99久久6| 国产成人免费在线视频| 91丨porny丨首页| 欧美人xxxx| 久久综合色婷婷| 中文字幕亚洲精品在线观看| 亚洲高清在线视频| 国产尤物一区二区| 97se亚洲国产综合自在线| 欧美日韩日本视频| 久久久久国产精品麻豆ai换脸| 国产精品国产精品国产专区不蜜| 亚洲欧洲成人精品av97| 午夜a成v人精品| 国产精品中文欧美| 在线观看欧美日本| 精品国产亚洲在线| 亚洲狠狠丁香婷婷综合久久久| 日本午夜精品一区二区三区电影 | www.性欧美| 欧美日韩的一区二区| 久久久久久久网| 亚洲午夜成aⅴ人片| 国产精品1024久久| 欧美色窝79yyyycom| 久久久久97国产精华液好用吗| 一区二区三区免费在线观看| 国产一区二区在线免费观看| 欧美亚洲一区二区在线| 国产人久久人人人人爽| 午夜视黄欧洲亚洲| 成人av午夜电影| 精品国产三级电影在线观看| 亚洲午夜免费电影| 波多野结衣中文一区| 精品欧美久久久| 亚洲一二三专区| 99国产精品久久久久| 日韩精品一区二区三区中文不卡| 亚洲黄色在线视频| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 不卡的电影网站| 精品国产sm最大网站免费看| 亚洲国产乱码最新视频 | 免费看日韩a级影片| 97se狠狠狠综合亚洲狠狠| 久久影院午夜片一区| 亚洲午夜电影在线观看| 91免费观看国产| 国产女人水真多18毛片18精品视频| 石原莉奈在线亚洲三区| 色综合久久中文综合久久97| 日韩精品一区国产麻豆| 无吗不卡中文字幕| 日本精品视频一区二区三区| 国产精品每日更新| 国产成人精品亚洲777人妖| 日韩精品在线看片z| 日日摸夜夜添夜夜添精品视频| 欧美亚洲一区二区在线| 一区二区三区鲁丝不卡| 91视频www| 伊人色综合久久天天| 97久久超碰国产精品电影| 中文字幕精品在线不卡| 国产成人欧美日韩在线电影| 欧美精品一区二区三区在线| 麻豆成人免费电影| 日韩视频免费观看高清完整版在线观看 | 欧美电视剧在线观看完整版| 日韩精品一级二级 | 精品国产一区久久| 麻豆成人在线观看| 精品国产伦理网| 国产精品伊人色| 国产精品日韩成人| av在线免费不卡| 亚洲免费视频中文字幕| 欧美性色黄大片手机版| 偷偷要91色婷婷| 日韩精品一区国产麻豆| 国产精品一区二区在线观看不卡 | 欧美日韩色综合| 天天av天天翘天天综合网| 欧美日韩免费一区二区三区视频| 亚洲一区二区不卡免费| 91.com视频| 狠狠色丁香久久婷婷综合丁香| 久久亚洲综合av| 成人高清在线视频| 一级中文字幕一区二区| 制服丝袜亚洲精品中文字幕| 理论电影国产精品| 国产目拍亚洲精品99久久精品| av一二三不卡影片| 亚洲自拍偷拍九九九| 777xxx欧美| 青青草国产精品亚洲专区无| 久久久高清一区二区三区| 91蜜桃在线观看| 一二三区精品福利视频| 日韩精品综合一本久道在线视频| 国产成人99久久亚洲综合精品| 综合激情成人伊人|