java - HtmlUnit爬虫登录搜狐网的时候重定向不成功,得到的是“登录中。。。”的页面。
ringa_lee
ringa_lee 2017-04-17 12:07:27
[Java讨论组]

代码如下:

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("heiheiabcd@sohu.com");
        HtmlPasswordInput password = (HtmlPasswordInput) page.getElementById("pw_login");
        password.click();
        password.type("Xx20111111");
        HtmlAnchor submit = page.getFirstByXPath("//form[@id='user-login']/a[1]");
        page = (HtmlPage) submit.click();
        Thread.sleep(3000);
        System.out.println(page.asText());
        webClient.closeAllWindows();
    }
} 

得到的结果如下:

登录 - 我的搜狐汽车
首页  |  新闻  |  购车  |  用车  |  论坛
heiheiabcd@sohu.com Xx20111111
**登录中...       //为什么是登录中,而得不到登录后的界面,有什么办法?**
checked 下次自动登录 忘记密码?
使用其它账号登录:
意见反馈 - 搜狗输入法 - 支付中心 - 搜狐招聘 - 广告服务 - 客服中心 - 联系方式 - 保护隐私权 - About SOHU - 公司介绍
Copyright © 2011 Sohu.com Inc. All Rights Reserved. 搜狐公司 版权所有
搜狐不良信息举报电话:010-62728061 举报邮箱:jubao@contact.sohu.com
京ICP备060382号

问题:怎么才能得到登录后的页面而不是登录中的页面?
(page.getWebResponse().getContentAsString()得到页面源码。page.getUrl()得到登录中页面的url)

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
PHP中文网

登录中这个页面header有set-cookie吧,有的话,记录下来,用Cookie访问首页就好了

高洛峰

线程休眠的时间再长点行不行?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号