2010-04-11 3 views
0

자바에서 웹 페이지의 표현에 대한 질문은나는의 CharSequence에 웹 페이지의 내용을 읽을 수있는 튜토리얼을 따라 다음과 같은 방법을 내놓았다 한

public static CharSequence getURLContent(URL url) throws IOException { 
     URLConnection conn = url.openConnection(); 
     String encoding = conn.getContentEncoding(); 
     if (encoding == null) { 
     encoding = "ISO-8859-1"; 
     } 
     BufferedReader br = new BufferedReader(new 
      InputStreamReader(conn.getInputStream(),encoding)); 
     StringBuilder sb = new StringBuilder(16384); 
     try { 
     String line; 
     while ((line = br.readLine()) != null) { 
      sb.append(line); 
      sb.append('\n'); 
     } 
     } finally { 
     br.close(); 
     } 
     return sb; 
    } 

그것은 URL에 의해 지정된 웹 페이지의 표현을 반환합니다 . 그러나이 표현은 필자의 Firefox에서 "view page source"와 상당히 다르며 원본 웹 페이지 (원래 "view page source"파일의 일부 데이터 세그먼트)에서 데이터를 긁어 내야하므로 항상 이 Java 표현에 필요한 텍스트를 찾지 못합니다. 어딘가 잘못 됐습니까? 귀하의 충고가 필요합니다. 덕분에 많은 도움을 받았습니다!

+2

"상당히 다릅니다"를 정의하십시오. * 정확히 정확히 무엇이 다른가? – BalusC

+1

엄청나게 다른, 어떻게? –

답변

1

HTML 파싱 라이브러리를 사용하여이 웹 페이지의 HTML 텍스트를 나타내는 데이터 구조를 작성해야합니다. 이 라이브러리를 사용하는 것이 좋습니다 : http://htmlparser.sourceforge.net.

+0

그녀는 이전 주제에서 그녀를 추천했지만 그녀는 그것을 완전히 무시한 것처럼 보였습니다. http://stackoverflow.com/questions/2615727/webpage-data-scraping-using-java – BalusC

1

요청 사항은 useragent이며 쿠키는 응답에서 서버가 반환하는 내용을 변경할 수 있습니다. 따라서 문제는 응답을 읽는 방법보다 보내려는 요청의 세부 사항에 더 가깝습니다.

HttpClient과 같은 것은 브라우저에서 전송되는 요청을보다 쉽게 ​​시뮬레이션 할 수있게 해줍니다.

관련 문제