2017-03-29 12 views
2

HTMLページを無視して、ウェブページ上のすべての読みやすい単語を1つのテキスト文書に保存しようとしています。 JSoupを使用してウェブページ上の単語をすべて解析すると、コードから実際の単語を分離する方法は、要素を介してのみ行われます。jsoup文書をテキストファイルとして保存する方法

jsoup文書の複数の要素をテキストファイルに変換することはできますか?

すなわち:と現在の文書として解析を保存

 Elements titles = doc.select("title"); 
     Elements paragraphs = doc.select("p"); 
     Elements links = doc.select("a[href]"); 
     Elements smallText = doc.select("a"); 

:私は上記のコメントをすることができませんので

Document doc = Jsoup.connect("https:// (enter a url)").get(); 
+0

ファイルを作成して書き込みますか? – Dummy

+0

申し訳ありませんが、私はJavaを使い慣れていません。私にそれを行う方法を教えることができるサンプルコードまたはリファレンスを表示できますか? – ary

+0

ここでは、Javaの古いIO APIと新しいIO APIについて学ぶのに最適な場所です。https://docs.oracle.com/javase/tutorial/essential/io/ – Dummy

答えて

1

その簡単な方法

Document doc = Jsoup.connect("https:// (enter a url)").get(); 
     BufferedWriter writer = null; 
     try 
     { 
      writer = new BufferedWriter(new FileWriter("d://test.txt")); 
      writer.write(doc.toString()); 

     } 
     catch (IOException e) 
     { 
     } 
+0

ありがとうございました!私はこれを試して、それは動作します。どのように私はそのファイルライターに特定の要素だけを保存するだろうか?例は現在メインポストにあります。 – ary

+0

ファイルにすべてを1つずつ保存したいのですか? – soorapadman

+0

私は、HTMLページを無視しながら、Webページ上の読みやすい単語をすべて1つのテキストドキュメントに保存しようとしています。それが要素のためのものであり、読みやすい単語だけを選択することです。 – ary

-1

は答えを追加。

writer.write(doc.toString());を上記コードのwriter.write(doc.select("html").text());に置き換えてください。

これは、ページ上にテキストを表示します。

"html"の代わりにdoc.select("**html**").text()に他のタグを使用して、これらのタグで囲まれたテキストを抽出することができます。

編集:あなたもwriter.write(doc.text());とテキストであなたは、この問題を修正しますwriter.close();を記述する必要が非常に次の行を書き込んだ後writer.write(doc.body().text());

+0

これは試したときに空のテキストファイルしか保存されませんでした。 – ary

+0

これはhtmlのすべてのマークアップでそれを解析します。それは同封のタグを除外しません..どのように私は本当の単語を抽出することができますか? – ary

+0

'doc.select(" html ")。toString()を使用すると、Web要素がStringとして返されます。ここではタグは除外されません。 HTML文書(wepページ)のルートタグであるので、 '' html ''タグを提案します。 'doc.select(" html ")。text()'があなたのために働かないなら(それは必要です)、 'doc.body()。text()' –

-1

を使用することができます。

+0

コメントを新しい回答として追加する代わりに、これを他の回答の編集として提案してください。 – andrewdotn

関連する問題