Có thể trích xuất văn bản từ các URL bằng Tika không? Mọi liên kết sẽ được đánh giá cao. Hoặc TIKA chỉ có thể sử dụng cho pdf, từ và bất kỳ tài liệu truyền thông nào khác?Trích xuất văn bản từ các URL bằng TIKA
Trả lời
Đây là từ 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());
Thay vì tạo ra một PDFParser
bạn có thể sử dụng Tika của AutoDetectParser
để tự động xử lý các loại khác của tập tin:
Parser parser = new AutoDetectParser();
Kiểm tra documentation - có bạn có thể.
Ví dụ
java -jar tika-app-0.9.jar -t http://stackoverflow.com/questions/6656849/extract-the-text-from-url-using-tika
sẽ hiển thị nội dung trên trang này.
để trích xuất nội dung từ URL không từ tập tin địa phương sử dụng mã này:
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());
Bạn cũng có thể sử dụng TikaInputStream.get (byte []) để xây dựng InputStream – Gagravarr
Cảm ơn ,, Tôi không biết tại sao nó cho tôi chuỗi rỗng trong handler.toString() !!! –
Có, bạn có thể làm điều đó. Đây là mã. Mã này sử dụng 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");
}
Và nếu tôi cần sử dụng mã này trong mã Java và lưu văn bản từ url trong tệp văn bản .. Sau đó, cũng có thể .. ?? Và tôi không dùng maven. Tôi muốn sử dụng điều này trong mã java .. – ferhan
mô tả cách sử dụng tika với ant là ngay bên dưới mô tả về cách sử dụng nó với Maven, và chỉ ở trên các hướng dẫn cho công cụ dòng lệnh. Nếu bạn cần một số nguồn cảm hứng về cách nhúng nó, tôi chắc chắn có thông tin trên trang web và luôn có nguồn gốc của công cụ dòng lệnh. – fvu
điều này sẽ làm cho một ví dụ tốt đẹp trong tài liệu ... – topchef