2014-11-24 33 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