2013-05-03 2 views
0

웹 페이지에서 태그를 추출하는 Java 프로그램을 만들고 있습니다. 구문 분석을 위해 Jsoup를 사용하고 있는데, 괜찮습니다.하지만 몇 가지 문제가 있습니다. 태그를 다운로드하십시오.모든 스크립트의 내용을 HTML로 가져 오는 방법은 무엇입니까?

  1. goog1.htm
  2. goog2.html (내가 브라우저를 통해 https://www.google.co.in에서 저장)
  3. goog3.html ((내가 명령 'wget을 https://www.google.co.in'를 사용하여 다운로드) - : 나는 4 개 파일이 이는 내가에서 전체 코드를 복사하여 얻을 BufferedReader로 & InputStreamReader)
  4. goog4.html (사용하여 내 자바 프로그램을 통해 다운로드 '보기 소스 : https://www.google.co.in/')를
,

이 4 개의 파일에서 "< script />"문자열을 검색하면 모두 다른 결과가 나타납니다.

  • goog1.htm - 16 배
  • goog2.html - 5 회
  • goog3.html - 5 회
  • goog4.html - 그 이유는 무엇 10 배

차이점은? 페이지에서 모든 스크립트 태그를 가져 오는 방법은 무엇입니까?

내 프로그램을 테스트 할 때 사용해야하는 파일은 무엇입니까? 사전에

감사합니다 ...

+0

* "내 프로그램을 테스트 할 때 사용해야하는 파일은 무엇입니까?"* 아마도 Google과 같은 프로그래밍 방식의 액세스를 방지하기 위해 극단적으로 이동하지 않는 웹 서비스의 사용자일까요? –

+0

해당 사이트의 콘텐츠를 가져 가거나 요청하는 것을 처리 했습니까? –

답변

1

1) script 태그의 다른 수의 이유는 HTML 페이지에 정의 된 여러 script 태그가있을 수 있습니다.

2) 페이지의 모든 스크립트 태그가로드되어 실행됩니다. 모든 스크립트 코드를 테스트하려면 모든 코드로 테스트해야합니다. 테스트 범위에 따라 다릅니다.

3) 콘텐츠를 텍스트로 사용하여 JAVA 프로그램으로 가져온 경우 하위 문자열 방법으로 구문 분석하여 모든 스크립트 태그 콘텐츠를 가져올 수 있습니다. 하지만 이렇게하려면 Apache commons StringUtils 클래스를 사용하는 것이 좋습니다.

import org.apache.commons.lang.StringUtils; 

public class scriptContentRetriever{ 

public static void main(String[] args) { 
     String yourScriptContent = "<script>This is Script 1 Content</script><script>This is Script 2 Content</script>"; 
     String[] scriptStrings = StringUtils.substringsBetween(yourScriptContent, "<script>", "</script>"); 
     for (String scriptString : scriptStrings) { 
      //Do what ever you want with the script content right here. 
      System.out.println(scriptString); 
     } 
    } 

} 
+0

답변을 주셔서 감사합니다.하지만 문제는 HTML 페이지입니다. 페이지 내용을 얻는 코드는 다음과 같습니다. String pageContent = Jsoup.connect ("www.google.co.in"). get(); 10

관련 문제