• ベストアンサー
  • すぐに回答を!

Web ページのテキスト取得

URL url = new URL("http://www.yahoo.co.jp/"); BufferedReader br = new BufferedReader( new InputStreamReader(url.openStream())); String str; while ((str = br.readLine()) != null) { System.out.println(str); とすればyahooのhtmlが出力されますが、日本語が文字化けします。 対策を教えてください。 また、yahooのようなページのテキスト(htmlタグを除く)だけを取得する方法を教えてください。

noname#101202
noname#101202

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数428
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

日本語が文字化け対応 もし、コマンドプロンプトへの出力での文字化けであれば、コマンドプロンプトの文字コードをUTF-8に変更、レジストリもいじって日本語も表示できるようにする必要もあり。参考URL 1番目 その他の環境での文字化けでも、UTF-8文字列をMS932として解釈しているはずなので、環境をUTF-8に変更すれば解決するはず。 テキスト(htmlタグを除く)だけを取得する方法 HTML自体がテキストなので、何をしたいのか、よく分からん。 画面に表示されるテキストのみ取得したいという意味なら、自前でHTMLを解析するか、既存のHTMLパーサを利用する。参考URL 2番目

参考URL:
http://fine.ap.teacup.com/hepo/23.html,http://java-source.net/open-source/html-parsers

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 最初の件は、InputStreamReader の第2パラに String で "utf-8" を指定したらうまくいきました。 HTML パーサを調べて見ます。

関連するQ&A

  • javaのエンコードについて?

    さまざまなホームページを探して、下記のプログラムでホームページの情報は読み取ることができるようになったのですが、文字化けを起こして見ることができません。 何をどうすれば文字化けを防げるのかまったくわかりません。 ご存知の方、おしえていただけないでしょうか? おねがいいたします。 import java.io.*; import java.net.*; class test{ public static void main(String[] args) throws Exception { URL url = null; BufferedReader in = null; String readString = null; url = new URL("http://www.yahoo.co.jp/"); in = new BufferedReader(new InputStreamReader(url.openStream())); while((readString=in.readLine())!=null) System.out.println(readString); in.close(); } }

    • ベストアンサー
    • Java
  • javaでクッキーを取得したい

    以下ソースで、ホームページのデータは取得できるのですが、クッキーが必要なページではうまく作動しません。 どのように改良すればよいでしょうか? また、こういったプログラムを作るのに参考になる書籍をご存知でしたら教えてください。 よろしくお願いいたします。 import java.io.*; import java.net.*; class test { public static void main(String[] args) throws Exception { URL url = null; BufferedReader in = null; String readString = null; url = new URL("http://www.yahoo.co.jp"); in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); while((readString=in.readLine())!=null) System.out.println(readString); in.close(); } }

    • ベストアンサー
    • Java
  • Ctrl+Zが入力されると終了するプログラム

    入力された文字をそのまま表示し、[Ctrl]+Zが入力されると終了するプログラムを組んでいるんですがどのように記述すればよいか困っています。アドバイスお願いします。 public static void main(String args[])throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; do{ str = br.readLine(); System.out.println(str); }while(str == null); }

    • ベストアンサー
    • Java
  • ファイルの書き出し方法について

    お世話になります。 ファイルの出力方法についての質問です。 inputstreamからファイルを作成するとき、もっとも高速に行うにはどのようにすればいいのでしょうか? とりあえず私は // URLクラスのインスタンスを生成 URL myURL = new URL("欲しいページ"); // 接続します URLConnection con = myURL.openConnection(); // 入力ストリームを取得 BufferedReader in = new BufferedReader( new InputStreamReader( con.getInputStream())); String tmp = ""; String str = ""; while((str=in.readLine())!=null){ tmp = tmp + str; } //その後strをファイルに書き出す。 という風にやっておりますが、もっと高速にする方法はないでしょうか? 私なりのイメージではstreamからstreamへ直接渡せないのかな?という ことができないのかなという疑問です。 (いちいちStringになおさなければいけないのかな?ということです。) 以上です。

    • ベストアンサー
    • Java
  • ある文字コードのHTMLを読み込むと文字バケが…

    例えばこのgooの文字コードはEUC-JPなのですが、これを以下のプログラム(抜粋)で読み込むと日本語がおかしくなります。 try {  URL url = new URL(tf.getText());  BufferedReader urlin = new BufferedReader(new InputStreamReader(url.openStream()));  String result = "";  while((result = urlin.readLine()) != null){   System.out.println(result); }  urlin.close(); } Shift-JISだと正常に表示できるのですが… どうかアドバイスをお願いします。

    • ベストアンサー
    • Java
  • 文字コードを変換する

    //このプログラムは、指定されたURLのソースを読むプログラムです。 import java.io.*; //入出力のAPIを実装するのに用います。 import java.net.*; //ネットワークに関するAPIを実相するのに用います。 import java.lang.*; class rss { public static void main(String args[]) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("読み込みたいRSSのURIを入力してください。"); String address = br.readLine(); //URLを標準入力から読み込みます。 URL url = new URL(address); InputStream uin = url.openStream(); BufferedReader in = new BufferedReader(new InputStreamReader(uin)); String source; //ソースファイル一行を格納する文字列変数です。 //指定したURLのソースファイル標準出力します。 while((source = in.readLine()) != null ){ System.out.println(source); } } catch(IOException e){ System.out.println("ソースを読みこめませんでした。"); } } } というプログラムを作ったのですが、 一部のソースファイルが文字化けを起こします。 そのソースがどの文字コードでできているか? そして、それをどうやったら変換したらいいかを 教えてほしいのです。 お願いします。

    • ベストアンサー
    • Java
  • javaのエンコードについて?

    下記のプログラムでホームページの情報は読み取ることができるようになったのですが、一部ホームページ(UTF-8エンコードのホームページと思われる)、文字化けを起こして見ることができません。 解決する方法を、教えていただけないでしょうか? おねがいいたします。 import java.io.*; import java.net.*; class test{ public static void main(String[] args) throws Exception { URL url = null; BufferedReader in = null; String readString = null; url = new URL("http://www.faireal.net/"); in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); while((readString=in.readLine())!=null) System.out.println(readString); in.close(); } }

    • ベストアンサー
    • Java
  • javaでのBufferedOutputStreamクラス

    javaプログラミングで、あるURLからBufferedOutputStreamを用いてhtmlファイルを生成し、その生成したhtmlファイルをBufferedReaderで読み込みし、出力してみると文字化けが起こってしまいます。日本語を文字化けさせずに読み込む方法などあるのでしょうか。 以下の方法だと文字化けしてしまいます。 <ファイル生成方法> URL url = new URL( str[i] ); InputStream in = url.openStream(); BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream(args[0])); while ((len2 = in.read(buf2)) != -1) { for (int j = 0; j < len2; j++) { bo2.write(buf2[j]); } } <ファイル読み込み方法> BufferedReader br = new BufferedReader(new FileReader(args[0])); while((str = br.readLine()) != null){ // 出力 System.out.println(str); } よろしくお願いします。

    • ベストアンサー
    • Java
  • このアクセスの仕方はOK?

    以下はプログラムの一部ですが、気になったことがあって、 ・指定しているURLに拡張子がないこと。 ・拡張子がなくてもHTML文書はダウンロードしていいのか。 です。実際にプログラムを組んでダウンロードできたんですが、こういうやりかたでやっていいのかよく考えるうちに不安になったので、質問させていただきました。ご教授お願いします。 URL url = new URL("http://ja.wikipedia.org/wiki/SMAP"); InputStreamReader in = new InputStreamReader(url.openStream(),"UTF-8"); BufferedReader br = new BufferedReader(fr); while((line = br.readLine()) != null){ ......

    • ベストアンサー
    • Java
  • javaについて>IEのクッキーを使いたい

    IEでログインした状態であれば、ヤフーメールなどクッキーを使うHPにアクセスできるかと思ったのですがアクセスできません。どうすればよいでしょうか? 多分、javaはIEのクッキーを利用していないのですよね・・・ 何とか、IEのクッキーを利用できれば良いのですが。何か、良いお知恵はありませんでしょうか? 宜しくお願い致します。 以下、コードです。 ーーーーーーーーーーーーーーーーーーーーーーー import java.io.*; import java.net.*; class Test { static String input() throws IOException { InputStream is = new FileInputStream("url.txt");//urlを入力 BufferedReader br = new BufferedReader(new InputStreamReader(is)); String str = br.readLine(); return(str); } static void read(String str) throws IOException { OutputStream os = new FileOutputStream("log.txt",true); BufferedWriter fr = new BufferedWriter(new OutputStreamWriter(os)); URL url = new URL(str); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); for (;;) { String i = in.readLine(); if(i == null) { break; } System.out.println(i + "\n"); fr.write(i + "\n"); } in.close(); fr.close(); } public static void main(String[] args) throws IOException { Test brow = new Test(); brow.read(brow.input()); } }

    • ベストアンサー
    • Java

専門家に質問してみよう