2015-01-05 89 views
0

我需要爲我的項目獲取一些網頁內容,例如「http://www.ncbi.nlm.nih.gov/nuccore/NM_007002」。 問題是我需要從瀏覽器打開頁面並將其保存以獲取完整內容(如果我嘗試使用庫URL和BufferReader,則獲取頁面的「框架」但不是我需要的文本)。 我的教授告訴我使用Seleniume打開並下載我需要的頁面,然後閱讀並解析相關信息。打開並保存網頁selenium java

不幸的是,我找不到打開和保存網頁的JAVA代碼示例。 任何人都可以解釋我如何做到這一點?

我想將頁面保存到我的電腦,而不是複製源文件並將其保存爲文件。 並非所有的信息都出現在源代碼中!它隱藏了。

+0

保存網頁?使用HTML標記還是僅使用網頁的文本? –

+0

[如何以不同的名稱和文件夾保存當前頁面源代碼]可能的重複(http://stackoverflow.com/questions/13003283/how-to-save-current-page-source-in-different-name-folder) – Louis

回答

3

的硒,你可以這樣做:

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. 

看那getPageSource文檔here

如果您想從特定標籤獲得的數據,像比方說body,那麼你可以這樣做:

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

這不是我所需要的。 我需要將頁面保存到我的電腦。只有那時我需要的信息纔是可行的。 – Artemis

+0

@yalush:你想把頁面保存到電腦,那麼爲什麼你不能用'File'來做? –

+0

因爲文件保存頁面的文本,我需要頁面本身,就像當我使用「另存爲...」一樣。我需要它,因爲頁面中的一些信息是隱藏的,只有當我將頁面保存到我的計算機時才顯示在頁面中。 – Artemis

1

記住,硒是爲網頁自動化,因此與互動頁面自動。如果只有源真的是你需要什麼,你可以使用一個JSoup一個真正堅實的Java 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

您可以打開頁面並查看自己的問題。你可以看到,「外顯子」這個詞在頁面上出現很多次,但是隻有一次。如果我嘗試閱讀論文,我無法獲得所需的全部信息。 – Artemis