【发布时间】:2011-10-03 03:58:58
【问题描述】:
是否可以使用 Tika 从 URL 中提取文本?任何链接将不胜感激。或者 TIKA 只能用于 pdf、word 和任何其他媒体文档?
【问题讨论】:
标签: java apache-tika
是否可以使用 Tika 从 URL 中提取文本?任何链接将不胜感激。或者 TIKA 只能用于 pdf、word 和任何其他媒体文档?
【问题讨论】:
标签: java apache-tika
检查documentation - 是的,你可以。
例子
java -jar tika-app-0.9.jar -t http://stackoverflow.com/questions/6656849/extract-the-text-from-url-using-tika
将显示此页面上的文本。
【讨论】:
这是来自lucid:
InputStream input = new FileInputStream(new File(resourceLocation));
ContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
PDFParser parser = new PDFParser();
parser.parse(input, textHandler, metadata);
input.close();
out.println("Title: " + metadata.get("title"));
out.println("Author: " + metadata.get("Author"));
out.println("content: " + textHandler.toString());
您可以使用 Tika 的 AutoDetectParser 来自动处理不同类型的文件,而不是创建 PDFParser:
Parser parser = new AutoDetectParser();
【讨论】:
是的,你可以这样做。这是代码。此代码使用 apache http client
HttpGet httpget = new HttpGet("http://url.here");
HttpEntity entity = null;
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(httpget);
entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
parser.parse( instream, handler, metadata, new ParseContext());
String plainText = handler.toString();
FileWriter writer = new FileWriter( "/scratch/cache/output.txt");
writer.write( plainText );
writer.close();
System.out.println( "done");
}
【讨论】:
要从 URL 而非本地文件中提取内容,请使用以下代码:
byte[] raw = content.getContent();
ContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
parser.parse(new ByteArrayInputStream(raw), handler, metadata, new ParseContext());
LOG.info("content: " + handler.toString());
【讨论】: