为什么HTMLunit不能在这个https网页上运行?

时间:2011-03-17 07:49:27

标签: java screen-scraping security htmlunit

我正在尝试更多地了解HTMLunit并进行一些测试。我正在尝试从此站点获取页面标题和文本等基本信息:

https://....com(删除了完整的网址,重要的是它是https)

我使用的代码就是这样,在其他网站上运行正常:

 final WebClient webClient = new WebClient();
  final HtmlPage page;
  page = (HtmlPage)webClient.getPage("https://medeczane.sgk.gov.tr/eczane/login.jsp");
  System.out.println(page.getTitleText());
  System.out.println(page.asText());

为什么我不能获得这些基本信息?如果是因为安全措施,具体是什么,我可以绕过它们吗?感谢。

编辑:嗯,代码在webclient.getpage()之后停止工作; ,test2没有写。所以我无法检查页面是否为空。

  final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2);
  final HtmlPage page;
  System.out.println("test1");
    try {
        page = (HtmlPage)webClient.getPage("https://medeczane.sgk.gov.tr/eczane/login.jsp");
      System.out.println("test2");

2 个答案:

答案 0 :(得分:12)

我通过添加以下代码解决了这个问题:

webClient.setUseInsecureSSL(true);

这是禁用安全SSL的弃用方式。在当前的HtmlUnit版本中,你必须这样做:

webClient.getOptions().setUseInsecureSSL(true);

答案 1 :(得分:1)

我认为这是一个身份验证问题 - 如果我在Firefox中访问该页面,我会收到一个登录框。

尝试

webClient.setAuthentication(realm,username,password);

在调用getPage()之前