当前位置: 首页>>代码示例>>Java>>正文


Java WARCRecordInfo.addExtraHeader方法代码示例

本文整理汇总了Java中org.archive.io.warc.WARCRecordInfo.addExtraHeader方法的典型用法代码示例。如果您正苦于以下问题:Java WARCRecordInfo.addExtraHeader方法的具体用法?Java WARCRecordInfo.addExtraHeader怎么用?Java WARCRecordInfo.addExtraHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.archive.io.warc.WARCRecordInfo的用法示例。


在下文中一共展示了WARCRecordInfo.addExtraHeader方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getWarcRecordInfo

import org.archive.io.warc.WARCRecordInfo; //导入方法依赖的package包/类
public WARCRecordInfo getWarcRecordInfo(Page page, URI uri) throws IOException {
    WARCRecordInfo warcRecord = new WARCRecordInfo();

    warcRecord.setUrl(page.getFinalUrl());
    warcRecord.setRecordId(uri);
    warcRecord.setType(WARCRecordType.response);
    warcRecord.setMimetype(WARCConstants.HTTP_RESPONSE_MIMETYPE);

    // Store fetch times using ISO-8601 format
    Date fetchTime = createFetchTimeDate(page);
    warcRecord.setCreate14DigitDate(dateFormater.get().format(fetchTime));

    // Re-create response body based on content bytes and response headers
    byte[] contentBytes = createContentBytes(page);
    warcRecord.setContentLength(contentBytes.length);
    warcRecord.setContentStream(new ByteArrayInputStream(contentBytes));

    // Store ACHE-specific metadata as non-standard extension header fields
    if (page.getTargetRelevance() != null) {
        TargetRelevance targetRelevance = page.getTargetRelevance();
        warcRecord.addExtraHeader("ACHE-IsRelevant", String.valueOf(targetRelevance.isRelevant()));
        warcRecord.addExtraHeader("ACHE-Relevance", String.format("%.10f", targetRelevance.getRelevance()));
    }
    warcRecord.addExtraHeader("ACHE-Requested-URL", page.getRequestedUrl());

    return warcRecord;
}
 
开发者ID:ViDA-NYU,项目名称:ache,代码行数:28,代码来源:WarcTargetRepository.java

示例2: writeResponse

import org.archive.io.warc.WARCRecordInfo; //导入方法依赖的package包/类
protected URI writeResponse() throws IOException, ParseException {
  WARCRecordInfo record = new WARCRecordInfo();

  record.setType(WARCConstants.WARCRecordType.response);
  record.setUrl(getUrl());

  String fetchTime;

  record.setCreate14DigitDate(DateUtils
      .getLog14Date(Long.parseLong(metadata.get("nutch.fetch.time"))));
  record.setMimetype(WARCConstants.HTTP_RESPONSE_MIMETYPE);
  record.setRecordId(GENERATOR.getRecordID());

  String IP = getResponseAddress();

  if (StringUtils.isNotBlank(IP))
    record.addExtraHeader(WARCConstants.HEADER_KEY_IP, IP);

  if (ParseSegment.isTruncated(content))
    record.addExtraHeader(WARCConstants.HEADER_KEY_TRUNCATED, "unspecified");

  ByteArrayOutputStream output = new ByteArrayOutputStream();

  String httpHeaders = metadata.get("_response.headers_");

  if (StringUtils.isNotBlank(httpHeaders)) {
    output.write(httpHeaders.getBytes());
  } else {
    // change the record type to resource as we not have information about
    // the headers
    record.setType(WARCConstants.WARCRecordType.resource);
    record.setMimetype(content.getContentType());
  }

  output.write(getResponseContent().getBytes());

  record.setContentLength(output.size());
  record.setContentStream(new ByteArrayInputStream(output.toByteArray()));

  if (output.size() > 0) {
    // avoid generating a 0 sized record, as the webarchive library will
    // complain about it
    writer.writeRecord(record);
  }

  return record.getRecordId();
}
 
开发者ID:jorcox,项目名称:GeoCrawler,代码行数:48,代码来源:CommonCrawlFormatWARC.java

示例3: write

import org.archive.io.warc.WARCRecordInfo; //导入方法依赖的package包/类
protected void write(final WARCWriter writer, final Content content)
        throws IOException, ParseException
{
    WARCRecordInfo recordInfo = new WARCRecordInfo();
    recordInfo.setUrl(content.getUrl());

    byte[] byteContent = content.getContent();

    // skip empty records
    if (byteContent.length == 0) {
        return;
    }

    recordInfo.setContentStream(new ByteArrayInputStream(byteContent));
    recordInfo.setContentLength(byteContent.length);
    recordInfo.setEnforceLength(true);

    String warcDateString = DEFAULT_WARC_DATE;

    // convert date to WARC-Date format
    String date = content.getMetadata().get("Date");
    if (date != null) {
        try {
            warcDateString = String.valueOf(
                    new SimpleDateFormat("EEE, dd MMM yyyy kk:mm:ss ZZZ", Locale.ENGLISH)
                            .parse(date).getTime());
        }
        catch (ParseException ex) {
            // ignore
        }
    }

    recordInfo.setCreate14DigitDate(warcDateString);

    recordInfo.setType(WARCConstants.WARCRecordType.response);
    recordInfo.setMimetype(WARCConstants.HTTP_RESPONSE_MIMETYPE);
    recordInfo.setRecordId(generator.getRecordID());

    // add some extra headers from nutch
    Set<String> extraHeaders = new HashSet<String>(
            Arrays.asList("nutch.crawl.score", "nutch.segment.name", "Set-Cookie",
                    "Content-Type", "Server", "Pragma", "Cache-Control"));

    for (String extraHeader : extraHeaders) {
        String value = content.getMetadata().get(extraHeader);
        if (value != null) {
            recordInfo.addExtraHeader("Nutch_" + extraHeader, value);
        }
    }

    // apply filters
    boolean acceptExport = true;
    for (ExportContentFilter filter : filters) {
        acceptExport &= filter.acceptContent(recordInfo);
    }

    // and write only if we accept this content
    if (acceptExport) {
        writer.writeRecord(recordInfo);

        totalBytesWritten += byteContent.length;
        entriesCounter++;
    }

}
 
开发者ID:habernal,项目名称:nutch-content-exporter,代码行数:66,代码来源:NutchToWARCConverter.java


注:本文中的org.archive.io.warc.WARCRecordInfo.addExtraHeader方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。