33

外部ライブラリを使用せずに、Web サイトの HTML コンテンツを文字列に取得する最も簡単な方法は何ですか?

4

5 に答える 5

44

私は現在これを使用しています:

String content = null;
URLConnection connection = null;
try {
  connection =  new URL("http://www.google.com").openConnection();
  Scanner scanner = new Scanner(connection.getInputStream());
  scanner.useDelimiter("\\Z");
  content = scanner.next();
  scanner.close();
}catch ( Exception ex ) {
    ex.printStackTrace();
}
System.out.println(content);

しかし、より良い方法があるかどうかはわかりません。

于 2008-08-28T01:21:00.797 に答える
21

This has worked well for me:

URL url = new URL(theURL);
InputStream is = url.openStream();
int ptr = 0;
StringBuffer buffer = new StringBuffer();
while ((ptr = is.read()) != -1) {
    buffer.append((char)ptr);
}

Not sure at to whether the other solution(s) provided are any more efficient or not.

于 2008-08-29T05:11:10.500 に答える
2

この投稿を他のスレッドに残しましたが、上記のものも同様に機能する可能性があります. どちらか一方よりも簡単だとは思いません。import org.apache.commons.HttpClientコードの先頭でを使用するだけで、Apache パッケージにアクセスできます。

編集:リンクを忘れました;)

于 2008-08-28T01:31:53.187 に答える
1

バニラJavaではありませんが、より簡単なソリューションを提供します。Groovyを使用してください;-)

String siteContent = new URL("http://www.google.com").text
于 2013-03-05T09:16:53.393 に答える