2011-07-15 14 views
0

URLからテキストを抽出するにはどうすればよいですか?私のコードでは、そのURLのソースコードを抽出しています...TIKAを使用して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); 

何か提案がありますか?

答えて

1

..あなたは、私はそれをテストするが、私はhandler.toString()が空であることがわかっていても、このコード

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

を使用してティカでそれを行うことができます!

1

BoilerpipeContentHandlerは、マークアップなしで本文の内容を抽出することができます。含まれているコマンドラインユーティリティは、あなたのプログラムでそれを使用し、様々なフォーマットをテストする方法を示しています。私が読んだとして

+0

返信いただきありがとうございます。TIKAとは何かありますか? – ferhan

+0

そのクラスはティカの一部です! – fvu

+0

例は私のコードに基づいて評価されています..そして、あなたに私に偉大になるいくつかの例のリンクを与えることができたら... – ferhan

関連する問題