0

ブラウザで Web ページを開くと、正常に Web ページにアクセスできます。しかし、オンラインで Java の Web ページのソース コードを取得するのに疲れると、Web ページは自動的に別のページにリダイレクトされ、プログラムで新しい Web ページのソース コードしか取得できません。Javaでそのようなリダイレクトを壊す方法はありますか?

ありがとう。

以下は、私のプログラムでソース コードをフェッチする部分です。

リンク先の Web ページは、中国最大のインターネット企業 (Baidu) が所有するオンライン コミュニティ Web ページ (Facebook など) です。

次のプログラムを実行すると、コンソールに投稿された Web ページのソース コードが、ブラウザーから取得できるコードではないことがわかります。また、コンソールに投稿されたソース コードは、次の Web ページで見つけることができるものとほぼ同じです 。 %8E%E9%AA%8F%E5%90%A7&url=http://tieba.baidu.com/f?kw=%B9%AC%C6%E9%BF%A5

これは、Web ページがリダイレクトされたことを示しています。

import java.net.*;
import java.io.*;
import java.util.*;

public class URLConnectTest {

    public static final String s = "%B9%AC%C6%E9%BF%A5";

    public static void main(String[] args) throws Exception {
        URL u = new URL("http://tieba.baidu.com/f?kw=" + s);
        URLConnection yc = u.openConnection();

        /* I've ever tried to reset the UA, which doesn't work.
        yc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.16 Safari/534.24");
        */

        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
    }
}
4

1 に答える 1

0

HTTPURLConnectionは自動的に HTTP リダイレクトに従います。無効にする場合は、 を呼び出しますHTTPURLConnection.setInstanceFollowRedirects(false)

于 2012-09-03T05:09:57.640 に答える