Извлеките содержание (текст) URL с помощью TIKA - PullRequest
0 голосов
/ 16 июля 2011

Как мне извлечь текст из URL?В моем коде он извлекает исходный код этого URL ...

DefaultHttpClient client = null;
client = new DefaultHttpClient();
client.getCredentialsProvider().setCredentials(
                new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM),
                new UsernamePasswordCredentials("test", "test"));
client.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);                
HttpGet request = new HttpGet("http://somehost.com");        
HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();

Tika t = new Tika();
Metadata md = new Metadata();
Reader r = t.parse(content, md);
System.out.println(md);
System.out.println("Yes1: " +md.get("keywords"));
System.out.println("Yes2: " +md.get("title"));
System.out.println("Yes3: " +md.get("authors"));

//This gives the source code of that url not the actual content...
String ss= t.parseToString(content);
System.out.println("Yes4: " +ss);

Любые предложения ??

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Как я прочитал .. вы можете сделать это с помощью tika, используя этот код

 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());

, хотя я тестировал его, но обнаружил, что handler.toString () пуст!

1 голос
/ 16 июля 2011

BoilerpipeContentHandler позволяет извлекать содержимое тела без разметки.Включенная утилита командной строки показывает, как использовать ее в вашей программе и тестировать различные форматы.

...