2012-12-19 5 views
0

http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282&page=1의 내용을 인쇄 할 때 내 브라우저에서 "소스보기"기능을 사용할 때 표시되는 것과 다른 HTML이 표시됩니다 (크롬, 제 경우에는 생각하지 않지만 정확한 브라우저 문제). 예를 들어, 상기 URL에서 ID가 "result_10"와 사업부는 하나의 브라우저에서 다음과 같이 나타납니다자바 URL에서 직접 읽기

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

하지만 자바의 java.net.URL 유틸리티를 사용하여 동일한 웹 페이지 내용을 인쇄 할 때, 같은 사업부는 다음과 같이 나타납니다

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

이것은 프로그래밍 방식으로이 페이지를 읽고 브라우저를 사용하여 생성 한 HTML 간의 식별자 및 페이지 구조의 많은 차이 중 하나 일뿐입니다. 나는 이것이 URL 분해 문제 또는 완전히 다른 어떤 종류에서 유래 한 것인지 확실하지 않습니다.

브라우저에서 Java 응용 프로그램과 동일한 페이지 내용을 어떻게 가져올 수 있습니까?

"http://www.amazon.com/s/ref=sr_pg_3?rh=n%3A172282 & 페이지 = 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(); 
} 

명확한 설명이 필요하면 언제든지 알려주세요.

+2

아마도 사용자 에이전트 탐지를 수행한다고 생각 했습니까? (이 경우 스푸핑 문제 일 수 있습니다). – luiscubal

+1

* "명확한 설명이 필요하면 언제든지 알려주세요."* 귀하의 질문은 무엇입니까? –

+1

웹 사이트가 컴퓨터에서 어떻게 보이는지, 그리고 휴대 전화에서 다른 모습으로 보일 것입니다. 그것은 그것과 같습니다. –

답변

1

User Agent과 관련이 있다면 놀랄 일이 아닙니다. 기본값이 URL.openStream 인 이유를 모르지만 Chrome과 동일하지는 않습니다.

+0

아, 나는 다른 사용자 에이전트가 다른 내용으로 제공된다는 것을 알지 못했습니다. Chrome에서 볼 수있는 것과 동일한 페이지 콘텐츠를 쉽게 얻을 수 있습니까? –

+2

@AlexWood 어쩌면. Chrome 사용자 에이전트를 스푸핑 해보세요. 그들이 당신에게 봉사하는 내용을 결정하는 것은 amazon.com에게 달려 있습니다. 요원을 기반으로 한 것은 아닙니다. – climbage

+1

Ajax 나 다른 javascripty가 태그를 수정하고 내용을 추가 할 수도 있습니다. –