人人网登录地址:http://www.renren.com/

此处登录没有考虑验证码验证码。

首先对登录方法进行分析

有两种方法。

一)在Elements中分析源码

  发现登录点击后的事件是http://www.renren.com/PLogin.do

二)在Network中分析网络请求

请求链接:http://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2017110237292

表单数据 :

email 账号用户名
icode 验证码,可为空
origURL : http://www.renren.com/home
domain:renren.com
key_id:1
captcha_type:web_login
password: 密码,需要对输入的密码进行加密处理
rkey: 密码处理
f: 未知 此处采取直接使用Elements发现的触发事件。
 1 package 人人网模拟登录;
2
3 import org.apache.http.Header;
4 import org.apache.http.NameValuePair;
5 import org.apache.http.client.ResponseHandler;
6 import org.apache.http.client.entity.UrlEncodedFormEntity;
7 import org.apache.http.client.methods.CloseableHttpResponse;
8 import org.apache.http.client.methods.HttpGet;
9 import org.apache.http.client.methods.HttpPost;
10 import org.apache.http.impl.client.BasicResponseHandler;
11 import org.apache.http.impl.client.CloseableHttpClient;
12 import org.apache.http.impl.client.HttpClients;
13 import org.apache.http.message.BasicNameValuePair;
14 import java.util.ArrayList;
15 import java.util.List;
16
17 public class Renren {
18 public static void main(String[] args) throws Exception{
19 CloseableHttpClient closeableHttpClient = HttpClients.createDefault() ;
20 HttpPost httpPost = new HttpPost("http://www.renren.com/PLogin.do") ;
21
22 String userName = " " ; // 账号写入
23 String passWord = " " ; // 密码写入
24 List<NameValuePair> dlbd = new ArrayList<NameValuePair>();
25 // 登录表单设置
26 dlbd.add(new BasicNameValuePair("domain", "renren.com"));
27 dlbd.add(new BasicNameValuePair("isplogin", "true"));
28 dlbd.add(new BasicNameValuePair("submit", "登录"));
29 dlbd.add(new BasicNameValuePair("email", userName));
30 dlbd.add(new BasicNameValuePair("password", passWord));
31 httpPost.setEntity(new UrlEncodedFormEntity(dlbd));
32 // Post请求
33 CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpPost) ;
34 // 获取响应头
35 Header locationHeader = closeableHttpResponse.getFirstHeader("Location");
36 // Get请求
37 String header = locationHeader.getValue();
38 HttpGet httpGet = new HttpGet(header) ;
39 ResponseHandler<String> responseHandler = new BasicResponseHandler();
40 String responseBody = closeableHttpClient.execute(httpGet, responseHandler);
41 System.out.println(responseBody);
42 }
43 }

登录成功

如果之前在网页登录失败次数过多,可能会导致爬虫模拟登录需要验证码,而此处是考虑不需要验证码的情况,所以可能会登录失败,解决方法可以是清理本机Cookie。

Java爬虫——人人网模拟登录的更多相关文章

  1. Python爬虫之模拟登录微信wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  2. Python爬虫-百度模拟登录(二)

    上一篇-Python爬虫-百度模拟登录(一) 接上一篇的继续 参数 codestring codestring jxG9506c1811b44e2fd0220153643013f7e6b1898075 ...

  3. Java 爬虫遇到需要登录的网站,该怎么办?

    这是 Java 网络爬虫系列博文的第二篇,在上一篇 Java 网络爬虫,就是这么的简单 中,我们简单的学习了一下如何利用 Java 进行网络爬虫.在这一篇中我们将简单的聊一聊在网络爬虫时,遇到需要登录 ...

  4. Python爬虫-百度模拟登录(一)

    千呼万唤屎出来呀,百度模拟登录终于要呈现在大家眼前了,最近比较忙,晚上又得早点休息,这篇文章写了好几天才完成.这个成功以后,我打算试试百度网盘的其他接口实现.看看能不能把服务器文件上传到网盘,好歹也有 ...

  5. Python 爬虫之模拟登录

    最近应朋友要求,帮忙爬取了小红书创作平台的数据,感觉整个过程很有意思,因此记录一下.在这之前自己没怎么爬过需要账户登录的网站数据,所以刚开始去看小红书的登录认证时一头雾水,等到一步步走下来,最终成功, ...

  6. java 使用htmlunit模拟登录爬取新浪微博页面

    mport java.io.IOException;import java.net.MalformedURLException;import com.gargoylesoftware.htmlunit ...

  7. Android(Java) 模拟登录知乎并抓取用户信息

    前不久.看到一篇文章我用爬虫一天时间"偷了"知乎一百万用户.仅仅为证明PHP是世界上最好的语言,该文章中使用的登录方式是直接复制cookie到代码中,这里呢,我不以爬信息为目的.仅 ...

  8. 模拟登录新浪微博(Python)

    PC 登录新浪微博时, 在客户端用js预先对用户名.密码都进行了加密, 而且在POST之前会GET 一组参数,这也将作为POST_DATA 的一部分. 这样, 就不能用通常的那种简单方法来模拟POST ...

  9. Java 爬虫遇上数据异步加载,试试这两种办法!

    这是 Java 爬虫系列博文的第三篇,在上一篇 Java 爬虫遇到需要登录的网站,该怎么办? 中,我们简单的讲解了爬虫时遇到登录问题的解决办法,在这篇文章中我们一起来聊一聊爬虫时遇到数据异步加载的问题 ...

随机推荐

  1. 关于Mybaits映射一点心得

    本人的第一篇手写博客 -日期2017-11-06 在写博客之前一直使用手写笔记!!! 以前一直使用Hibernate,基本上没用过Mybatis,工作中需要做映射关系,简单的了解下Mybatis的映射 ...

  2. CentOS、Ubuntu配置网卡子接口

    CentOS # ip addr add dev eth0 lable eth0: 以上为临时配置,重启失效.若需永久保存,增加网络配置文件 # vim /etc/sysconfig/network- ...

  3. 第三方软件内嵌IE出现纵向滚动条消失的BUG,奇葩的IE BUG 真是无奇不有

    混了这么久 竟然还有这样难以解决的BUG,最后都跑到英文的MSDN上提问了,因为谷歌都谷不出朕的忧伤了,有木有. 提问原文如下:https://social.msdn.microsoft.com/Fo ...

  4. JAVAWEB开发环境搭建,附JDK开发环境一键配置批处理bat

    JDK配置: CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar   JAVA_HOME: C:\Program Files\J ...

  5. 发放福利:原价135元/年的阿里云CDN流量包(500GB)免费送

    不少朋友看过本站推荐的两篇文章:1. <阿里云全民云计算活动:云服务器ECS二折起>2. <阿里云双11优惠活动-爆款云服务器> 大部分人都说不错,很快下单购买了服务器,后续使 ...

  6. C#实现将输入的数自动转换为科学计数法

    一朋友写了一个把输入的整型或浮点数转换为科学计数法表示的算法,写好后叫我去帮他看看有没有什么bug之类的没有考虑周全.我还没有细看就已经把我吓到了----整整写了将近三百行代码.我也没说他什么,只是回 ...

  7. shopxx--权限功能测试

    shiro权限控制 一.添加角色 1.打开   系统→角色管理,点击 添加 赋予当前角色对应的权限 二.添加管理员(即用户管理) 添加用户,赋予刚才添加的角色 三.用新用户登录,进行测试 登录结果

  8. Codeforces543BDestory Roads心得

    题目描述: In some country there are exactly n cities and m bidirectional roads connecting the cities. Ci ...

  9. iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用

    iOS 中 .a 和 .framework 静态库的创建与 .bundle 资源包的使用 前言 开发中经常使用三方库去实现某特定功能,而这些三方库通常又分为开源库和闭源库.开源库可以直接拿到源码,和自 ...

  10. mysql单表多表查询

    单表查询语法: select 字段1,字段2... from 表名where 条 件group by fieldhaving 筛选order by 字段limit 限制条数 关键字的优先级:from  ...