2 mrluo93 MrLuo93 于 2017.09.15 09:13 提问

java爬虫模拟登陆失败, 求大神帮忙看看

/**
* 纷简历模拟登陆
/
public static void fenResumePost() {
// 创建客户端
CloseableHttpClient closeableHttpClient = HttpClients.createDefault();
// 预访问的网址
String login_src = "http://www.fenjianli.com/login/home.htm";
// 创建请求Post实例
HttpPost httpPost = new HttpPost(login_src);
// 设置头部信息进行浏览器模拟行为
httpPost.addHeader("Accept", "application/json, text/javascript, */
; q=0.01");
httpPost.addHeader("Accept-Encoding", "gzip, deflate");
httpPost.addHeader("Accept-Language", "zh-CN,zh;q=0.8");
httpPost.addHeader("Content", "keep-alive");
// httpPost.addHeader("Content-Length", "55"); // 提示异常: Content-Length header already present
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
httpPost.addHeader("Cookie", "td_cookie=544535021; huodong=fenjianli; hdflag=active; td_cookie=544673389; JSESSIONID=D0B07540004A292D094B4B54BEEB139C; Hm_lvt_accc94e05dd4516e89bc93ebd0d3938e=1503648592,1503987387,1503987657,1505373791; Hm_lpvt_accc94e05dd4516e89bc93ebd0d3938e=1505379033; Hm_lvt_b9e62a948ba6b6274cc0fa7e61b1b38b=1503648592,1503987374,1503987657,1505373791; Hm_lpvt_b9e62a948ba6b6274cc0fa7e61b1b38b=1505379033");
httpPost.addHeader("Host", "www.fenjianli.com");
httpPost.addHeader("Origin", "http://www.fenjianli.com");
httpPost.addHeader("Referer", "http://www.fenjianli.com/login/home.htm");
httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36");
httpPost.addHeader("X-Requested-With", "XMLHttpRequest");

    // 构建参数,即模拟需要输入的参数。通过抓包获得。
    List<NameValuePair> list = new ArrayList<NameValuePair>();
    list.add(new BasicNameValuePair("username", "******")); // 用户名
    list.add(new BasicNameValuePair("password", "******")); // 密码
    list.add(new BasicNameValuePair("rememberMe", "1"));

// list.add(new BasicNameValuePair("Request Method", "POST")); // 设置提交方法

    // 向对方服务器发送Post请求
    try {
        // 将参数进行封装,提交到服务器端
        httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF8"));
        CloseableHttpResponse httpResponse = closeableHttpClient.execute(httpPost);

        // 如果模拟登录成功, 得到服务响应状态码
        if (httpResponse.getStatusLine().getStatusCode() == 200) {
            // 打印所有响应头
            Header[] headers = httpResponse.getAllHeaders();
            System.out.println("登陆成功!");
            for (Header header : headers) {
                System.out.println(header.getName() + ": " + header.getValue());
            }
        } else {
            System.out.println("elan异常!");
        }
    }  catch (Exception e) {
        e.printStackTrace();
    }
}

8个回答

zy841958835
zy841958835   Ds   Rxr 2017.09.15 09:27
已采纳

首次登陆的时候 不用set cookie 你登录之后获取的页面跟你输入的url有关你想访问你想访问的页面可以再 调用GET方法

MrLuo93
MrLuo93 回复pluie-cloud: 嗯
10 个月之前 回复
zy841958835
zy841958835 以前没接触过httpclint么
10 个月之前 回复
MrLuo93
MrLuo93 没太懂你的意思 , 能详细点么?
10 个月之前 回复
zy841958835
zy841958835   Ds   Rxr 2017.09.15 10:10

HttpGet get = new HttpGet(你想访问的url);

closeableHttpClient.set(你上一步返回的cookie);
closeableHttpClient.excute(get);

MrLuo93
MrLuo93 回复pluie-cloud: 打了se之后后面就没有方法了
10 个月之前 回复
zy841958835
zy841958835 ..........setCookie 找下类似的方法
10 个月之前 回复
MrLuo93
MrLuo93 closeableHttpClient 没有set的这个方法
10 个月之前 回复
zy841958835
zy841958835   Ds   Rxr 2017.09.15 15:59

看下参考下 cookie会自动保存 能获取到首页说明登录成功 然后调用sendGet方法
http://blog.csdn.net/zy841958835/article/details/77992435

MrLuo93
MrLuo93 老哥, 你能直接把代码发我邮箱上面么? 1163516396@qq.com
10 个月之前 回复
MrLuo93
MrLuo93 回复pluie-cloud: 好
10 个月之前 回复
zy841958835
zy841958835 没用的 可以删掉
10 个月之前 回复
MrLuo93
MrLuo93 回复pluie-cloud: sendGet()中的参数int b是做什么用的?
10 个月之前 回复
MrLuo93
MrLuo93 回复pluie-cloud: 好的
10 个月之前 回复
zy841958835
zy841958835 正在审核 审核过了 就可以了
10 个月之前 回复
MrLuo93
MrLuo93 回复pluie-cloud: 好 , 麻烦重新发条链接给我 , 那条链接失效了
10 个月之前 回复
zy841958835
zy841958835 添加了关键注释 同时修改了下
10 个月之前 回复
MrLuo93
MrLuo93 回复pluie-cloud: 麻烦可疑打一下注释就好了
10 个月之前 回复
zy841958835
zy841958835 能说下 哪行不懂么
10 个月之前 回复
MrLuo93
MrLuo93 嗯, 再看 , 不过一行注释都没有看的有点难度啊
10 个月之前 回复
MrLuo93
MrLuo93   2017.09.15 09:17
        该抓的包我也差不多了 ,  StatusCode =====> 200 状态也一直都是200 ,  没有异常 .  我获取网页获取到的一直是首页
qq_40251220
qq_40251220   2017.09.15 10:15

0000000000000000000000000

MrLuo93
MrLuo93 111111111111111111111111111111
10 个月之前 回复
MrLuo93
MrLuo93   2017.09.15 10:40

那位大佬可以说说登陆失败主要有哪些原因么?

MrLuo93
MrLuo93   2017.09.15 18:23

老哥, 你能直接把代码发我邮箱上面么? 1163516396@qq.com

MrLuo93
MrLuo93   2017.09.19 10:00

其实就是我的一个单词打错了 ...

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java爬虫模拟登陆源码
java爬虫模拟登陆源码:直接导入eclipse,用于爬虫初期网站抓取数据的模拟登陆,即下即用。
求各位大神帮忙(java)
我遇到一个问题,就是: 下拉框里共有10个元素,第一个下拉框选中其中一个元素 ,第二个下拉框就会剔除掉这个元素,也就是只有9个元素,依次类推 请问大神,我js或者jquery该怎么写,跪求了
求大神们帮忙看看错误在哪
use warnings;use strict;open(INFILE, &quot;/Users/lizeshuo/Desktop/test2.txt&quot;) ||   die &quot;Cannot open the newfile: $!\n&quot;;open(OUTFILE, &quot;&amp;gt;test3.txt&quot;) ||   die &quot;Cannot open the newfile: $!\n&quot;;my @a;while (...
java编写模拟登陆爬虫
—-首先为什么能用程序去登陆网站?因为当我们访问网站后,服务端会生成一个sessionId,保存在客户端的cookie中,如何这个sessionId是正确登陆是返回的id,那么当我们访问需要登录才能访问的网页时,将这个sessionId加入访问数据中,服务器就知道我们已经登录了,所以就可以爬取需要登录的页面的内容我们需要用到的工具: Jsoup:http://download.csdn.net/d
使用PhantomJS实现模拟登陆(Java爬虫)
记录了利用PhantomJS+Java进行模拟登陆的过程,同时介绍了PhantomJS,并记录了开发过程中遇到的问题
JAVA爬虫初识之模拟登录
JAVA爬虫模拟登录知乎
CSDN爬虫(三)——网络爬虫模拟登陆两种策略
文章同步:http://blog.csdn.net/wgyscsf
java从零到变身爬虫大神
学习java3天有余,知道一些基本语法后 学习java爬虫,1天后开始出现明显效果 刚开始先从最简单的爬虫逻辑入手 爬虫最简单的解析面真的是这样 1 import org.jsoup.Jsoup;
python爬虫之模拟登陆csdn
python模拟登陆网页主要使用到urllib、urllib2、cookielib及BeautifulSoup等基本模块,当然进阶阶段我们还可以使用像requests等更高级一点的模块。其中BeautifulSoup模块可以很好的代理re,使用起来更方便,对于不会使用正则的人来说是福音。本文使用python2.7原理模拟登陆前,我们需要先知道csdn是如何登陆的。我们通过google chrome浏
求大神帮忙~
wowza推流连接成功了  但是播放得到时候就显示now published 本人萌新根本不懂啊  求帮助