0

当我打印http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1的内容时,我看到的 HTML 与使用浏览器中的“查看源代码”功能(Chrome ,就我而言,尽管我认为确切的浏览器并不重要)。例如,来自上述 URL 的 id 为“result_10”的 div 在浏览器中显示如下:

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

但是当使用 Java 的实用程序打印相同的网页内容时java.net.URL,相同的 div 显示如下:

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

这只是以编程方式读取此页面和使用浏览器生成的 HTML 之间在标识符和页面结构方面的众多差异之一。我不确定这是否源于某种 URL 解析问题或完全不同的东西。

如何从 Java 应用程序获取我在浏览器中看到的相同页面内容?

这是我一直用来读取 URL 的函数,其中“http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1”是有问题的参数。

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

如果它与您的用户代理有关,我不会感到惊讶。我不知道默认值是什么URL.openStream,但我怀疑它与 Chrome 相同。

于 2012-12-19T00:11:48.230 回答