当我打印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();
}
如果需要任何澄清,请随时告诉我。