2015-01-05 3 views
0

내 프로젝트에 대해 "http://www.ncbi.nlm.nih.gov/nuccore/NM_007002"과 같은 웹 사이트의 내용을 가져와야합니다. 문제는 브라우저에서 페이지를 열고 전체 내용을 가져와 저장해야한다는 것입니다 (라이브러리 URL을 사용하려고하면 BufferReader에 페이지의 "프레임"이 필요하지만 필요한 텍스트가 아님). 교수님이 Seleniume을 사용하여 필요한 페이지를 열고 다운로드 한 다음 관련 정보를 읽고 구문 분석 해달라고 요청했습니다.오픈 웹 페이지 셀레늄을 저장하십시오.

불행히도 웹 페이지를 열고 저장하는 JAVA 코드에서 예제를 찾을 수 없습니다. 누구든지이 방법을 설명 할 수 있습니까?

원본을 복사하여 파일로 저장하지 않고 내 컴퓨터에 페이지를 저장하고 싶습니다. 모든 정보가 출처에 표시되지 않습니다! 그것은 숨겨져 있습니다.

+0

저장 웹 페이지해야합니까? HTML 태그가 있거나 웹 페이지의 텍스트 만 있습니까? –

+0

[다른 이름 및 폴더에 현재 페이지 소스를 저장하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/13003283/how-to-save-current-page-source-in-different-name-folder) – Louis

답변

3

셀레늄에서는이를 수행 할 수 있습니다 getPageSource 문서 here에서

SafariDriver driver = new SafariDriver(); //you can use any drivers like Chrome,FireFox 
driver.get("your link"); 
String pageSource = driver.getPageSource(); //now you have the page source 
//you can save the pageSource to the file or do what ever you want. 

봐. 당신이 예를 body 말할처럼 특정 태그로부터 데이터를 얻고 싶다면

, 당신은이 작업을 수행 할 수 있습니다

String pageSource=driver.findElement(By.tagName("body")).getText(); 
+0

이것은 내가 필요한 것이 아닙니다. 내 컴퓨터에 페이지를 저장해야합니다. 그래야 내가 필요한 정보를 얻을 수 있습니다. – Artemis

+0

@yalush : 페이지를 컴퓨터에 저장하고 싶은데 왜 '파일'로 그걸 할 수 없습니까? –

+0

파일은 페이지의 텍스트를 저장하므로 "다른 이름으로 저장 ..."을 사용할 때처럼 페이지 자체가 필요합니다. 페이지의 일부 정보가 숨겨져 있고 내 컴퓨터에 페이지를 저장할 때만 정보가 표시되기 때문에 필요합니다. – Artemis

1

와 상호 작용 때문에, 셀레늄은 웹 페이지 자동화에 대한 의미 있음을 유의하십시오 자동으로 페이지. 소스가 정말 필요한 경우에만, 당신이 JSoup 정말 고체 자바 HTML 파서는 두 줄의 코드에서 사용할 수 있습니다, 당신은 당신의 소스

 try { 
      Document doc = Jsoup.connect("http://www.ncbi.nlm.nih.gov/nuccore/NM_007002").userAgent("Mozilla/5.0").timeout(30000).get(); 
      System.out.println(doc.toString()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
+0

페이지 상영관을 열고 프로 블램을 직접 볼 수 있습니다. 당신은 "exon"이라는 단어가 페이지에 많은 시간으로 나타나지만 단지 한 곳에서만 나타남을 볼 수 있습니다. 내가 정보원을 읽으 려한다면 내가 필요한 모든 정보를 얻을 수 없다. – Artemis

관련 문제