0

http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1のコンテンツを印刷すると、ブラウザ (Chrome) の「ソースの表示」機能を利用したときに表示されるものとは異なる HTML が表示されます、私の場合、正確なブラウザは重要ではないと思いますが)。たとえば、前述の URL の ID "result_10" を持つ div は、ブラウザでは次のように表示されます。

<div id="result_10" class="rsltGrid prod" name="B007I5JT4S">

しかし、同じ Web ページのコンテンツを Java のjava.net.URLユーティリティで印刷すると、同じ div が次のように表示されます。

<div class="result product" id="result_10" name="B007I5JT4S">

これは、このページをプログラムで読み取って生成された HTML とブラウザを使用して生成された HTML との間の識別子とページ構造の多くの違いの 1 つにすぎません。これがある種の URL 解決の問題に起因するのか、それともまったく別の問題に起因するのかはわかりません。

ブラウザに表示されているのと同じページ コンテンツを Java アプリから取得するにはどうすればよいですか?

「http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1」が問題の引数である、URL を読み取るために使用してきた関数を次に示します。

public static void printWebPageContents(String url) throws IOException {
    URL specifiedUrl = new URL(url);
    BufferedReader in = new BufferedReader(new InputStreamReader(specifiedUrl.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);

    in.close();
}

説明が必要な場合は、遠慮なくお知らせください。

4

1 に答える 1

1

それがあなたのUser Agentに関係していたとしても、私は驚かないでしょう。のデフォルトが何であるかはわかりませんがURL.openStream、Chrome と同じではないかと思います。

于 2012-12-19T00:11:48.230 に答える