Java HTMLUnit登录不工作?
我有以下代码到我的网站,我想登录到如下所示。当我运行它时没有错误消息,但它在最后返回的HTML是原始登录页面的HTML,表明我没有登录。我曾在多个网站上尝试过,但同样的事情一直在发生,所以我不确定它是否在我想要的时候不让我登录,或者它是否与我转到另一个页面时没有记住cookies有关 任何帮助都将不胜感激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
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"));