Java HTMLUnit登录不工作?

Java HTMLUnit登录不工作?,java,screen-scraping,htmlunit,Java,Screen Scraping,Htmlunit,我有以下代码到我的网站,我想登录到如下所示。当我运行它时没有错误消息,但它在最后返回的HTML是原始登录页面的HTML,表明我没有登录。我曾在多个网站上尝试过,但同样的事情一直在发生,所以我不确定它是否在我想要的时候不让我登录,或者它是否与我转到另一个页面时没有记住cookies有关 任何帮助都将不胜感激 import java.util.logging.Level; import org.jsoup.*; import org.jsoup.nodes.Document; import com

我有以下代码到我的网站,我想登录到如下所示。当我运行它时没有错误消息,但它在最后返回的HTML是原始登录页面的HTML,表明我没有登录。我曾在多个网站上尝试过,但同样的事情一直在发生,所以我不确定它是否在我想要的时候不让我登录,或者它是否与我转到另一个页面时没有记住cookies有关

任何帮助都将不胜感激

import java.util.logging.Level;
import org.jsoup.*;
import org.jsoup.nodes.Document;

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlOption;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSelect;



public class testing {
public static void main(String[] args) throws Exception {

 java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF); 

final WebClient webClient = new WebClient();

final HtmlPage page = webClient.getPage("www.websiteneededtologinto.com");
HtmlElement usrname = page.getElementByName("Email");
usrname.click();
usrname.type("MYUSERNAME");
HtmlElement psswrd = page.getElementByName("Passwd");
psswrd.click();
psswrd.type("MYPASSWORD");
HtmlElement signin = page.getElementByName("signIn");
signin.click();



String html = Jsoup.connect("pagerequiringlogintoaccess.com").get().html();


System.out.println(html);
  }
   }

我以前遇到过这个问题,为了解决这个问题,我创建了运行所有函数的方法:setText、getEid和click。它们是:

 public void click(HtmlElement el) throws Exception{
    page = el.click();
  }

  public void setText(HtmlElement el, String text){
    HtmlTextInput input = (HtmlTextInput)el;
    input.setText(text);
  }

 public HtmlElement getEid(String id){
    HtmlElement rval = null;
    boolean looking = true;
    int counter = 0;
    while(counter < elementRetryCount && looking){
      try{
        rval = page.getHtmlElementById(id);
        looking = false;
      } catch (Exception e){
        try {
          Thread.sleep(elementRetryTimer * 1000);
        } catch (InterruptedException e1) {
          e1.printStackTrace();
        }
      }
      counter ++;
    }
    return rval;
  }
希望这些改变能有所帮助

scraper.setText(scraper.getEid("txtFromDate"), startingDate);
scraper.click(scraper.getEid("btnSubmit"));