2014-11-24 28 views
0

有一些html解析庫可用, 但如果您需要驗證並在每個請求中攜帶cookie,您會怎麼做?Java web解析器與餅乾?

而且一般如果你需要按,以獲得您想要解析, 例如該按鈕計算的東西,或者得到一些數據槽websocets等內容的一些按鈕...

有一種模擬瀏覽器行爲的技術(以便所有js都在實際工作)並從那裏解析...?

UPDATE

也許對於這個目的,我需要嵌入鉻和使用傳統的解析器?強硬。我不明白我怎麼觸發點擊...

+1

我從來沒有使用過個人,但我聽說過[硒(HTTP好東西:// www.seleniumhq.org/)。這是一個我認爲支持Java的瀏覽器自動化框架。我知道我的一個朋友曾經使用過它,並且取得了一些成功。 – 2014-11-24 07:49:29

+0

我知道他們,但它非常慢,因此它更適合測試...雖然它可能會做的伎倆...我希望有更適合嵌入到Java應用程序的東西... – vach 2014-11-24 07:55:22

+0

要觸發點擊也許你可以檢查按鈕並找出它究竟發生了什麼 - 它可能會調用一個javascript函數或通過POST或GET數據轉到另一個頁面,所有這些都可以通過編程方式進行。 – 2014-11-24 07:58:51

回答

1

的HtmlUnit:http://htmlunit.sourceforge.net/

public static void main(String... args) throws Exception { 
    final WebClient webClient = new WebClient(); 
    final HtmlPage page1 = webClient.getPage("http://some_url"); 
    final HtmlForm form = page1.getFormByName("myform"); 

    final HtmlSubmitInput button = form.getInputByName("submitbutton"); 
    final HtmlTextInput textField = form.getInputByName("userid"); 

    textField.setValueAttribute("root"); 

    final HtmlPage page2 = button.click(); 

    webClient.closeAllWindows(); 
} 
+0

謝謝,現在看起來好多了...... :) – vach 2014-11-24 07:58:32

+0

我知道它有一些問題,它有時會暗戀,或者渲染錯誤的方式......當然這會起作用在大多數情況下,但我們都明白,小圖書館不能做什麼巨大的瀏覽器已經實施...你對我的更新有什麼看法?關於嵌入鉻並以編程方式與其交互以完美模擬事物......? – vach 2014-11-24 08:10:15

+0

只是想辦法解決,如果這不能爲我工作...... – vach 2014-11-24 08:10:33