21cn邮箱手机登录问题使用HtmlUnit问题,怎么解决

23 条评论分享收藏感谢收起赞同 1 条评论分享收藏感谢收起写回答java爬虫问题一: 解决使用htmlunit 时候ssl认证失败问题|爬虫|问题|时候_新浪网
java爬虫问题一: 解决使用htmlunit 时候ssl认证失败问题
java爬虫问题一: 解决使用htmlunit 时候ssl认证失败问题
前言:在使用htmlunit 爬取其他网站信息的时候,提示错误信息:unable to find valid certification path to requested target意思:说明证书问题。各种检索,使用了很多方法,以下记录解决思路:解决方案一:一种解决方案是: webClient.getOptions().setUseInsecureSSL(true);这么设置之后,确实没有在提示unable to find valid certification path to requested target错误了。但是引发了其他的问题。所以该方案不成立。继续排查:解决方案二:设置setUseInsecureSSL(false);重要代码:WebClient webClient = new WebClient(BrowserVersion.CHROME);/***
htmlunit unable to find valid certification path to requested target**/webClient.getOptions().setThrowExceptionOnScriptError(false);//当JS执行出错的时候是否抛出异常, 这里选择不需要webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);//当HTTP的状态非200时是否抛出异常, 这里选择不需要webClient.getOptions().setActiveXNative(false);// webClient.getOptions().setCssEnabled(false);//是否启用CSS, 因为不需要展现页面, 所以不需要启用webClient.getOptions().setJavaScriptEnabled(true); //很重要,启用JSwebClient.setAjaxController(new NicelyResynchronizingAjaxController());//很重要,设置支持AJAX添加上面代码问题完美解决。
特别声明:以上文章内容仅代表作者本人观点,不代表新浪看点观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与新浪看点联系。共被编辑 3 次
HtmlUnit爬虫登录搜狐网的时候重定向不成功,得到的是“登录中。。。”的页面。
代码如下:
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;
public class Sohu {
public static void main(String[] args) throws Exception{
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
HtmlPage page = webClient.getPage("http://i.auto.sohu.com/user/login/toLogin.at");
HtmlTextInput user = (HtmlTextInput) page.getElementById("pp_login");
user.type("");
HtmlPasswordInput password = (HtmlPasswordInput) page.getElementById("pw_login");
password.click();
password.type("Xx");
HtmlAnchor submit = page.getFirstByXPath("//form[@id='user-login']/a[1]");
page = (HtmlPage) submit.click();
Thread.sleep(3000);
System.out.println(page.asText());
webClient.closeAllWindows();
得到的结果如下:
登录 - 我的搜狐汽车
**登录中...
//为什么是登录中,而得不到登录后的界面,有什么办法?**
checked 下次自动登录 忘记密码?
使用其它账号登录:
意见反馈 - 搜狗输入法 - 支付中心 - 搜狐招聘 - 广告服务 - 客服中心 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍
Copyright (C) 2011 Sohu.com Inc. All Rights Reserved. 搜狐公司 版权所有
搜狐不良信息举报电话:010- 举报邮箱:jubao@contact.sohu.com
京ICP备060382号
问题:怎么才能得到登录后的页面而不是登录中的页面?(page.getWebResponse().getContentAsString()得到页面源码。page.getUrl()得到登录中页面的url)
HtmlUnit爬虫登录搜狐网的时候重定向不成功,得到的是“登录中。。。”的页面。
代码如下:
import com.gargoylesoftware.htmlunit.*;
import com.gargoylesoftware.htmlunit.html.*;
public class Sohu {
public static void main(String[] args) throws Exception{
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
HtmlPage page = webClient.getPage("http://i.auto.sohu.com/user/login/toLogin.at");
HtmlTextInput user = (HtmlTextInput) page.getElementById("pp_login");
user.type("");
HtmlPasswordInput password = (HtmlPasswordInput) page.getElementById("pw_login");
password.click();
password.type("Xx");
HtmlAnchor submit = page.getFirstByXPath("//form[@id='user-login']/a[1]");
page = (HtmlPage) submit.click();
Thread.sleep(3000);
System.out.println(page.asText());
webClient.closeAllWindows();
得到的结果如下:
登录 - 我的搜狐汽车
**登录中...
//为什么是登录中,而得不到登录后的界面,有什么办法?**
checked 下次自动登录 忘记密码?
使用其它账号登录:
意见反馈 - 搜狗输入法 - 支付中心 - 搜狐招聘 - 广告服务 - 客服中心 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍
Copyright (C) 2011 Sohu.com Inc. All Rights Reserved. 搜狐公司 版权所有
搜狐不良信息举报电话:010- 举报邮箱:jubao@contact.sohu.com
京ICP备060382号
问题:怎么才能得到登录后的页面而不是登录中的页面?
HtmlUnit爬虫登录搜狐网的时候重定向不成功,得到的是“登录中。。。”的页面。
代码如下:
import com.gargoylesoftware.htmlunit.*;import com.gargoylesoftware.htmlunit.html.*;
public class Sohu {
public static void main(String[] args) throws Exception{
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);
HtmlPage page = webClient.getPage("http://i.auto.sohu.com/user/login/toLogin.at");
HtmlTextInput user = (HtmlTextInput) page.getElementById("pp_login");
user.type("");
HtmlPasswordInput password = (HtmlPasswordInput) page.getElementById("pw_login");
password.click();
password.type("Xx");
HtmlAnchor submit = page.getFirstByXPath("//form[@id='user-login']/a[1]");
page = (HtmlPage) submit.click();
Thread.sleep(3000);
System.out.println(page.asText());
webClient.closeAllWindows();
得到的结果如下:
登录 - 我的搜狐汽车首页
论坛 Xx登录中...
//为什么是登录中,而得不到登录后的界面,有什么办法?checked 下次自动登录 忘记密码?使用其它账号登录:意见反馈 - 搜狗输入法 - 支付中心 - 搜狐招聘 - 广告服务 - 客服中心 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍Copyright (C) 2011 Sohu.com Inc. All Rights Reserved. 搜狐公司 版权所有搜狐不良信息举报电话:010- 举报邮箱:jubao@contact.sohu.com京ICP备060382号
问题:怎么才能得到登录后的页面而不是登录中的页面?
我要该,理由是:个回答 天前在username字段中键入内容之前,密码字段将被禁用。通过设置username中的值不会触发管理密码字段启用的事件。public static void main(String[] args) {
WebClient webClient = new WebClient();
HtmlPage page = (HtmlPage) webClient
.getPage(&https://ma-andover.myfollett.com/aspen/logon.do&);
HtmlForm form = page.getFormByName(&logonForm&);
form.getInputByName(&username&).setValueAttribute(&myUsername&);
HtmlInput passWordInput = form.getInputByName(&password&);
passWordInput.removeAttribute(&disabled&);
passWordInput.setValueAttribute(&myPassword&);
page = form.getInputByValue(&Log On&).click(); // works fine
System.out.println(page.asText());
} catch (Exception e) {
e.printStackTrace();
} finally {
webClient.close();
}输出是Aspen: Log On
About Aspen
Andover Public Schools
Login ID myUsername
Password I forgot my password
Copyright (C)
Follett School Solutions. All rights reserved.
Follett Corporation Follett Software Company Aspen Terms of Use
Invalid login.
OK 天前要自动处理JavaScript,应该使用type()。try (WebClient webClient = new WebClient()) {
HtmlPage page = (HtmlPage) webClient.getPage(&https://ma-andover.myfollett.com/aspen/logon.do&);
HtmlForm form = page.getFormByName(&logonForm&);
form.getInputByName(&username&).type(&myUsername&);
form.getInputByName(&password&).type(&myPassword&);
page = form.getInputByValue(&Log On&).click();
System.out.println(page.asText());
}扫描二维码扫描关注云+社区查看: 3568|回复: 0
使用HTMLUNIT或HTTPUNIT自动登陆业务系统
之前碰到这种情况: 客户有些应用的页面想在PORTAL里面直接访问。而这些应用的页面呢本身没提供固定的地址,完全是动态生成的。
我当时的一种做法,就是使用HTTPUNIT和HTMLUNIT,在程序里面模拟登陆、模拟点击,直接去到你要去的那页,把那个生成出来的地址拿到,然后在实际环境里面转到那个URL。
这里面有个问题,就是之前在程序模拟的环境里面的SESSION需要把它延续到实际的环境。
有2个办法:
1,COOKIE。
2,出模拟环境之前,把SESSION里面的东西保存在全局变量里面。把实际环境的时候,再取出来。
不过这种办法,只用于救急。最好还是原应用提供该页面的固定地址。
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号

我要回帖

更多关于 怎样解决电脑无法登录的问题 的文章

 

随机推荐